/**
 * Copyright (c) 2023, 2024 Obeo.
 * This program and the accompanying materials
 * are made available under the terms of the Eclipse Public License v2.0
 * which accompanies this distribution, and is available at
 * https://www.eclipse.org/legal/epl-2.0/
 *
 * SPDX-License-Identifier: EPL-2.0
 *
 * Contributors:
 *     Obeo - initial API and implementation
 */
package org.eclipse.syson.sysml.provider;

import java.util.ArrayList;
import java.util.Collection;
import java.util.List;

import org.eclipse.emf.common.notify.Adapter;
import org.eclipse.emf.common.notify.Notification;
import org.eclipse.emf.common.notify.Notifier;
import org.eclipse.emf.common.util.ResourceLocator;
import org.eclipse.emf.edit.domain.EditingDomain;
import org.eclipse.emf.edit.provider.ChangeNotifier;
import org.eclipse.emf.edit.provider.ChildCreationExtenderManager;
import org.eclipse.emf.edit.provider.ComposeableAdapterFactory;
import org.eclipse.emf.edit.provider.ComposedAdapterFactory;
import org.eclipse.emf.edit.provider.IChangeNotifier;
import org.eclipse.emf.edit.provider.IChildCreationExtender;
import org.eclipse.emf.edit.provider.IDisposable;
import org.eclipse.emf.edit.provider.IEditingDomainItemProvider;
import org.eclipse.emf.edit.provider.IItemLabelProvider;
import org.eclipse.emf.edit.provider.IItemPropertySource;
import org.eclipse.emf.edit.provider.INotifyChangedListener;
import org.eclipse.emf.edit.provider.IStructuredItemContentProvider;
import org.eclipse.emf.edit.provider.ITreeItemContentProvider;
import org.eclipse.syson.sysml.SysmlPackage;
import org.eclipse.syson.sysml.util.SysmlAdapterFactory;

/**
 * This is the factory that is used to provide the interfaces needed to support Viewers. The adapters generated by this
 * factory convert EMF adapter notifications into calls to {@link #fireNotifyChanged fireNotifyChanged}. The adapters
 * also support Eclipse property sheets. Note that most of the adapters are shared among multiple instances. <!--
 * begin-user-doc --> <!-- end-user-doc -->
 *
 * @generated
 */
public class SysmlItemProviderAdapterFactory extends SysmlAdapterFactory implements ComposeableAdapterFactory, IChangeNotifier, IDisposable, IChildCreationExtender {
    /**
     * This keeps track of the root adapter factory that delegates to this adapter factory. <!-- begin-user-doc --> <!--
     * end-user-doc -->
     *
     * @generated
     */
    protected ComposedAdapterFactory parentAdapterFactory;

    /**
     * This is used to implement {@link org.eclipse.emf.edit.provider.IChangeNotifier}. <!-- begin-user-doc --> <!--
     * end-user-doc -->
     *
     * @generated
     */
    protected IChangeNotifier changeNotifier = new ChangeNotifier();

    /**
     * This helps manage the child creation extenders. <!-- begin-user-doc --> <!-- end-user-doc -->
     *
     * @generated
     */
    protected ChildCreationExtenderManager childCreationExtenderManager = new ChildCreationExtenderManager(SysmlEditPlugin.INSTANCE, SysmlPackage.eNS_URI);

    /**
     * This keeps track of all the supported types checked by {@link #isFactoryForType isFactoryForType}. <!--
     * begin-user-doc --> <!-- end-user-doc -->
     *
     * @generated
     */
    protected Collection<Object> supportedTypes = new ArrayList<>();

    /**
     * This constructs an instance. <!-- begin-user-doc --> <!-- end-user-doc -->
     *
     * @generated
     */
    public SysmlItemProviderAdapterFactory() {
        this.supportedTypes.add(IEditingDomainItemProvider.class);
        this.supportedTypes.add(IStructuredItemContentProvider.class);
        this.supportedTypes.add(ITreeItemContentProvider.class);
        this.supportedTypes.add(IItemLabelProvider.class);
        this.supportedTypes.add(IItemPropertySource.class);
    }

    /**
     * This keeps track of the one adapter used for all {@link org.eclipse.syson.sysml.AcceptActionUsage} instances.
     * <!-- begin-user-doc --> <!-- end-user-doc -->
     *
     * @generated
     */
    protected AcceptActionUsageItemProvider acceptActionUsageItemProvider;

    /**
     * This creates an adapter for a {@link org.eclipse.syson.sysml.AcceptActionUsage}. <!-- begin-user-doc --> <!--
     * end-user-doc -->
     *
     * @generated
     */
    @Override
    public Adapter createAcceptActionUsageAdapter() {
        if (this.acceptActionUsageItemProvider == null) {
            this.acceptActionUsageItemProvider = new AcceptActionUsageItemProvider(this);
        }

        return this.acceptActionUsageItemProvider;
    }

    /**
     * This keeps track of the one adapter used for all {@link org.eclipse.syson.sysml.ActionDefinition} instances. <!--
     * begin-user-doc --> <!-- end-user-doc -->
     *
     * @generated
     */
    protected ActionDefinitionItemProvider actionDefinitionItemProvider;

    /**
     * This creates an adapter for a {@link org.eclipse.syson.sysml.ActionDefinition}. <!-- begin-user-doc --> <!--
     * end-user-doc -->
     *
     * @generated
     */
    @Override
    public Adapter createActionDefinitionAdapter() {
        if (this.actionDefinitionItemProvider == null) {
            this.actionDefinitionItemProvider = new ActionDefinitionItemProvider(this);
        }

        return this.actionDefinitionItemProvider;
    }

    /**
     * This keeps track of the one adapter used for all {@link org.eclipse.syson.sysml.ActionUsage} instances. <!--
     * begin-user-doc --> <!-- end-user-doc -->
     *
     * @generated
     */
    protected ActionUsageItemProvider actionUsageItemProvider;

    /**
     * This creates an adapter for a {@link org.eclipse.syson.sysml.ActionUsage}. <!-- begin-user-doc --> <!--
     * end-user-doc -->
     *
     * @generated
     */
    @Override
    public Adapter createActionUsageAdapter() {
        if (this.actionUsageItemProvider == null) {
            this.actionUsageItemProvider = new ActionUsageItemProvider(this);
        }

        return this.actionUsageItemProvider;
    }

    /**
     * This keeps track of the one adapter used for all {@link org.eclipse.syson.sysml.ActorMembership} instances. <!--
     * begin-user-doc --> <!-- end-user-doc -->
     *
     * @generated
     */
    protected ActorMembershipItemProvider actorMembershipItemProvider;

    /**
     * This creates an adapter for a {@link org.eclipse.syson.sysml.ActorMembership}. <!-- begin-user-doc --> <!--
     * end-user-doc -->
     *
     * @generated
     */
    @Override
    public Adapter createActorMembershipAdapter() {
        if (this.actorMembershipItemProvider == null) {
            this.actorMembershipItemProvider = new ActorMembershipItemProvider(this);
        }

        return this.actorMembershipItemProvider;
    }

    /**
     * This keeps track of the one adapter used for all {@link org.eclipse.syson.sysml.AllocationDefinition} instances.
     * <!-- begin-user-doc --> <!-- end-user-doc -->
     *
     * @generated
     */
    protected AllocationDefinitionItemProvider allocationDefinitionItemProvider;

    /**
     * This creates an adapter for a {@link org.eclipse.syson.sysml.AllocationDefinition}. <!-- begin-user-doc --> <!--
     * end-user-doc -->
     *
     * @generated
     */
    @Override
    public Adapter createAllocationDefinitionAdapter() {
        if (this.allocationDefinitionItemProvider == null) {
            this.allocationDefinitionItemProvider = new AllocationDefinitionItemProvider(this);
        }

        return this.allocationDefinitionItemProvider;
    }

    /**
     * This keeps track of the one adapter used for all {@link org.eclipse.syson.sysml.AllocationUsage} instances. <!--
     * begin-user-doc --> <!-- end-user-doc -->
     *
     * @generated
     */
    protected AllocationUsageItemProvider allocationUsageItemProvider;

    /**
     * This creates an adapter for a {@link org.eclipse.syson.sysml.AllocationUsage}. <!-- begin-user-doc --> <!--
     * end-user-doc -->
     *
     * @generated
     */
    @Override
    public Adapter createAllocationUsageAdapter() {
        if (this.allocationUsageItemProvider == null) {
            this.allocationUsageItemProvider = new AllocationUsageItemProvider(this);
        }

        return this.allocationUsageItemProvider;
    }

    /**
     * This keeps track of the one adapter used for all {@link org.eclipse.syson.sysml.AnalysisCaseDefinition}
     * instances. <!-- begin-user-doc --> <!-- end-user-doc -->
     *
     * @generated
     */
    protected AnalysisCaseDefinitionItemProvider analysisCaseDefinitionItemProvider;

    /**
     * This creates an adapter for a {@link org.eclipse.syson.sysml.AnalysisCaseDefinition}. <!-- begin-user-doc -->
     * <!-- end-user-doc -->
     *
     * @generated
     */
    @Override
    public Adapter createAnalysisCaseDefinitionAdapter() {
        if (this.analysisCaseDefinitionItemProvider == null) {
            this.analysisCaseDefinitionItemProvider = new AnalysisCaseDefinitionItemProvider(this);
        }

        return this.analysisCaseDefinitionItemProvider;
    }

    /**
     * This keeps track of the one adapter used for all {@link org.eclipse.syson.sysml.AnalysisCaseUsage} instances.
     * <!-- begin-user-doc --> <!-- end-user-doc -->
     *
     * @generated
     */
    protected AnalysisCaseUsageItemProvider analysisCaseUsageItemProvider;

    /**
     * This creates an adapter for a {@link org.eclipse.syson.sysml.AnalysisCaseUsage}. <!-- begin-user-doc --> <!--
     * end-user-doc -->
     *
     * @generated
     */
    @Override
    public Adapter createAnalysisCaseUsageAdapter() {
        if (this.analysisCaseUsageItemProvider == null) {
            this.analysisCaseUsageItemProvider = new AnalysisCaseUsageItemProvider(this);
        }

        return this.analysisCaseUsageItemProvider;
    }

    /**
     * This keeps track of the one adapter used for all {@link org.eclipse.syson.sysml.AnnotatingElement} instances.
     * <!-- begin-user-doc --> <!-- end-user-doc -->
     *
     * @generated
     */
    protected AnnotatingElementItemProvider annotatingElementItemProvider;

    /**
     * This creates an adapter for a {@link org.eclipse.syson.sysml.AnnotatingElement}. <!-- begin-user-doc --> <!--
     * end-user-doc -->
     *
     * @generated
     */
    @Override
    public Adapter createAnnotatingElementAdapter() {
        if (this.annotatingElementItemProvider == null) {
            this.annotatingElementItemProvider = new AnnotatingElementItemProvider(this);
        }

        return this.annotatingElementItemProvider;
    }

    /**
     * This keeps track of the one adapter used for all {@link org.eclipse.syson.sysml.Annotation} instances. <!--
     * begin-user-doc --> <!-- end-user-doc -->
     *
     * @generated
     */
    protected AnnotationItemProvider annotationItemProvider;

    /**
     * This creates an adapter for a {@link org.eclipse.syson.sysml.Annotation}. <!-- begin-user-doc --> <!--
     * end-user-doc -->
     *
     * @generated
     */
    @Override
    public Adapter createAnnotationAdapter() {
        if (this.annotationItemProvider == null) {
            this.annotationItemProvider = new AnnotationItemProvider(this);
        }

        return this.annotationItemProvider;
    }

    /**
     * This keeps track of the one adapter used for all {@link org.eclipse.syson.sysml.AssertConstraintUsage} instances.
     * <!-- begin-user-doc --> <!-- end-user-doc -->
     *
     * @generated
     */
    protected AssertConstraintUsageItemProvider assertConstraintUsageItemProvider;

    /**
     * This creates an adapter for a {@link org.eclipse.syson.sysml.AssertConstraintUsage}. <!-- begin-user-doc --> <!--
     * end-user-doc -->
     *
     * @generated
     */
    @Override
    public Adapter createAssertConstraintUsageAdapter() {
        if (this.assertConstraintUsageItemProvider == null) {
            this.assertConstraintUsageItemProvider = new AssertConstraintUsageItemProvider(this);
        }

        return this.assertConstraintUsageItemProvider;
    }

    /**
     * This keeps track of the one adapter used for all {@link org.eclipse.syson.sysml.AssignmentActionUsage} instances.
     * <!-- begin-user-doc --> <!-- end-user-doc -->
     *
     * @generated
     */
    protected AssignmentActionUsageItemProvider assignmentActionUsageItemProvider;

    /**
     * This creates an adapter for a {@link org.eclipse.syson.sysml.AssignmentActionUsage}. <!-- begin-user-doc --> <!--
     * end-user-doc -->
     *
     * @generated
     */
    @Override
    public Adapter createAssignmentActionUsageAdapter() {
        if (this.assignmentActionUsageItemProvider == null) {
            this.assignmentActionUsageItemProvider = new AssignmentActionUsageItemProvider(this);
        }

        return this.assignmentActionUsageItemProvider;
    }

    /**
     * This keeps track of the one adapter used for all {@link org.eclipse.syson.sysml.Association} instances. <!--
     * begin-user-doc --> <!-- end-user-doc -->
     *
     * @generated
     */
    protected AssociationItemProvider associationItemProvider;

    /**
     * This creates an adapter for a {@link org.eclipse.syson.sysml.Association}. <!-- begin-user-doc --> <!--
     * end-user-doc -->
     *
     * @generated
     */
    @Override
    public Adapter createAssociationAdapter() {
        if (this.associationItemProvider == null) {
            this.associationItemProvider = new AssociationItemProvider(this);
        }

        return this.associationItemProvider;
    }

    /**
     * This keeps track of the one adapter used for all {@link org.eclipse.syson.sysml.AssociationStructure} instances.
     * <!-- begin-user-doc --> <!-- end-user-doc -->
     *
     * @generated
     */
    protected AssociationStructureItemProvider associationStructureItemProvider;

    /**
     * This creates an adapter for a {@link org.eclipse.syson.sysml.AssociationStructure}. <!-- begin-user-doc --> <!--
     * end-user-doc -->
     *
     * @generated
     */
    @Override
    public Adapter createAssociationStructureAdapter() {
        if (this.associationStructureItemProvider == null) {
            this.associationStructureItemProvider = new AssociationStructureItemProvider(this);
        }

        return this.associationStructureItemProvider;
    }

    /**
     * This keeps track of the one adapter used for all {@link org.eclipse.syson.sysml.AttributeDefinition} instances.
     * <!-- begin-user-doc --> <!-- end-user-doc -->
     *
     * @generated
     */
    protected AttributeDefinitionItemProvider attributeDefinitionItemProvider;

    /**
     * This creates an adapter for a {@link org.eclipse.syson.sysml.AttributeDefinition}. <!-- begin-user-doc --> <!--
     * end-user-doc -->
     *
     * @generated
     */
    @Override
    public Adapter createAttributeDefinitionAdapter() {
        if (this.attributeDefinitionItemProvider == null) {
            this.attributeDefinitionItemProvider = new AttributeDefinitionItemProvider(this);
        }

        return this.attributeDefinitionItemProvider;
    }

    /**
     * This keeps track of the one adapter used for all {@link org.eclipse.syson.sysml.AttributeUsage} instances. <!--
     * begin-user-doc --> <!-- end-user-doc -->
     *
     * @generated
     */
    protected AttributeUsageItemProvider attributeUsageItemProvider;

    /**
     * This creates an adapter for a {@link org.eclipse.syson.sysml.AttributeUsage}. <!-- begin-user-doc --> <!--
     * end-user-doc -->
     *
     * @generated
     */
    @Override
    public Adapter createAttributeUsageAdapter() {
        if (this.attributeUsageItemProvider == null) {
            this.attributeUsageItemProvider = new AttributeUsageItemProvider(this);
        }

        return this.attributeUsageItemProvider;
    }

    /**
     * This keeps track of the one adapter used for all {@link org.eclipse.syson.sysml.Behavior} instances. <!--
     * begin-user-doc --> <!-- end-user-doc -->
     *
     * @generated
     */
    protected BehaviorItemProvider behaviorItemProvider;

    /**
     * This creates an adapter for a {@link org.eclipse.syson.sysml.Behavior}. <!-- begin-user-doc --> <!-- end-user-doc
     * -->
     *
     * @generated
     */
    @Override
    public Adapter createBehaviorAdapter() {
        if (this.behaviorItemProvider == null) {
            this.behaviorItemProvider = new BehaviorItemProvider(this);
        }

        return this.behaviorItemProvider;
    }

    /**
     * This keeps track of the one adapter used for all {@link org.eclipse.syson.sysml.BindingConnector} instances. <!--
     * begin-user-doc --> <!-- end-user-doc -->
     *
     * @generated
     */
    protected BindingConnectorItemProvider bindingConnectorItemProvider;

    /**
     * This creates an adapter for a {@link org.eclipse.syson.sysml.BindingConnector}. <!-- begin-user-doc --> <!--
     * end-user-doc -->
     *
     * @generated
     */
    @Override
    public Adapter createBindingConnectorAdapter() {
        if (this.bindingConnectorItemProvider == null) {
            this.bindingConnectorItemProvider = new BindingConnectorItemProvider(this);
        }

        return this.bindingConnectorItemProvider;
    }

    /**
     * This keeps track of the one adapter used for all {@link org.eclipse.syson.sysml.BindingConnectorAsUsage}
     * instances. <!-- begin-user-doc --> <!-- end-user-doc -->
     *
     * @generated
     */
    protected BindingConnectorAsUsageItemProvider bindingConnectorAsUsageItemProvider;

    /**
     * This creates an adapter for a {@link org.eclipse.syson.sysml.BindingConnectorAsUsage}. <!-- begin-user-doc -->
     * <!-- end-user-doc -->
     *
     * @generated
     */
    @Override
    public Adapter createBindingConnectorAsUsageAdapter() {
        if (this.bindingConnectorAsUsageItemProvider == null) {
            this.bindingConnectorAsUsageItemProvider = new BindingConnectorAsUsageItemProvider(this);
        }

        return this.bindingConnectorAsUsageItemProvider;
    }

    /**
     * This keeps track of the one adapter used for all {@link org.eclipse.syson.sysml.BooleanExpression} instances.
     * <!-- begin-user-doc --> <!-- end-user-doc -->
     *
     * @generated
     */
    protected BooleanExpressionItemProvider booleanExpressionItemProvider;

    /**
     * This creates an adapter for a {@link org.eclipse.syson.sysml.BooleanExpression}. <!-- begin-user-doc --> <!--
     * end-user-doc -->
     *
     * @generated
     */
    @Override
    public Adapter createBooleanExpressionAdapter() {
        if (this.booleanExpressionItemProvider == null) {
            this.booleanExpressionItemProvider = new BooleanExpressionItemProvider(this);
        }

        return this.booleanExpressionItemProvider;
    }

    /**
     * This keeps track of the one adapter used for all {@link org.eclipse.syson.sysml.CalculationDefinition} instances.
     * <!-- begin-user-doc --> <!-- end-user-doc -->
     *
     * @generated
     */
    protected CalculationDefinitionItemProvider calculationDefinitionItemProvider;

    /**
     * This creates an adapter for a {@link org.eclipse.syson.sysml.CalculationDefinition}. <!-- begin-user-doc --> <!--
     * end-user-doc -->
     *
     * @generated
     */
    @Override
    public Adapter createCalculationDefinitionAdapter() {
        if (this.calculationDefinitionItemProvider == null) {
            this.calculationDefinitionItemProvider = new CalculationDefinitionItemProvider(this);
        }

        return this.calculationDefinitionItemProvider;
    }

    /**
     * This keeps track of the one adapter used for all {@link org.eclipse.syson.sysml.CalculationUsage} instances. <!--
     * begin-user-doc --> <!-- end-user-doc -->
     *
     * @generated
     */
    protected CalculationUsageItemProvider calculationUsageItemProvider;

    /**
     * This creates an adapter for a {@link org.eclipse.syson.sysml.CalculationUsage}. <!-- begin-user-doc --> <!--
     * end-user-doc -->
     *
     * @generated
     */
    @Override
    public Adapter createCalculationUsageAdapter() {
        if (this.calculationUsageItemProvider == null) {
            this.calculationUsageItemProvider = new CalculationUsageItemProvider(this);
        }

        return this.calculationUsageItemProvider;
    }

    /**
     * This keeps track of the one adapter used for all {@link org.eclipse.syson.sysml.CaseDefinition} instances. <!--
     * begin-user-doc --> <!-- end-user-doc -->
     *
     * @generated
     */
    protected CaseDefinitionItemProvider caseDefinitionItemProvider;

    /**
     * This creates an adapter for a {@link org.eclipse.syson.sysml.CaseDefinition}. <!-- begin-user-doc --> <!--
     * end-user-doc -->
     *
     * @generated
     */
    @Override
    public Adapter createCaseDefinitionAdapter() {
        if (this.caseDefinitionItemProvider == null) {
            this.caseDefinitionItemProvider = new CaseDefinitionItemProvider(this);
        }

        return this.caseDefinitionItemProvider;
    }

    /**
     * This keeps track of the one adapter used for all {@link org.eclipse.syson.sysml.CaseUsage} instances. <!--
     * begin-user-doc --> <!-- end-user-doc -->
     *
     * @generated
     */
    protected CaseUsageItemProvider caseUsageItemProvider;

    /**
     * This creates an adapter for a {@link org.eclipse.syson.sysml.CaseUsage}. <!-- begin-user-doc --> <!--
     * end-user-doc -->
     *
     * @generated
     */
    @Override
    public Adapter createCaseUsageAdapter() {
        if (this.caseUsageItemProvider == null) {
            this.caseUsageItemProvider = new CaseUsageItemProvider(this);
        }

        return this.caseUsageItemProvider;
    }

    /**
     * This keeps track of the one adapter used for all {@link org.eclipse.syson.sysml.Class} instances. <!--
     * begin-user-doc --> <!-- end-user-doc -->
     *
     * @generated
     */
    protected ClassItemProvider classItemProvider;

    /**
     * This creates an adapter for a {@link org.eclipse.syson.sysml.Class}. <!-- begin-user-doc --> <!-- end-user-doc
     * -->
     *
     * @generated
     */
    @Override
    public Adapter createClassAdapter() {
        if (this.classItemProvider == null) {
            this.classItemProvider = new ClassItemProvider(this);
        }

        return this.classItemProvider;
    }

    /**
     * This keeps track of the one adapter used for all {@link org.eclipse.syson.sysml.Classifier} instances. <!--
     * begin-user-doc --> <!-- end-user-doc -->
     *
     * @generated
     */
    protected ClassifierItemProvider classifierItemProvider;

    /**
     * This creates an adapter for a {@link org.eclipse.syson.sysml.Classifier}. <!-- begin-user-doc --> <!--
     * end-user-doc -->
     *
     * @generated
     */
    @Override
    public Adapter createClassifierAdapter() {
        if (this.classifierItemProvider == null) {
            this.classifierItemProvider = new ClassifierItemProvider(this);
        }

        return this.classifierItemProvider;
    }

    /**
     * This keeps track of the one adapter used for all {@link org.eclipse.syson.sysml.CollectExpression} instances.
     * <!-- begin-user-doc --> <!-- end-user-doc -->
     *
     * @generated
     */
    protected CollectExpressionItemProvider collectExpressionItemProvider;

    /**
     * This creates an adapter for a {@link org.eclipse.syson.sysml.CollectExpression}. <!-- begin-user-doc --> <!--
     * end-user-doc -->
     *
     * @generated
     */
    @Override
    public Adapter createCollectExpressionAdapter() {
        if (this.collectExpressionItemProvider == null) {
            this.collectExpressionItemProvider = new CollectExpressionItemProvider(this);
        }

        return this.collectExpressionItemProvider;
    }

    /**
     * This keeps track of the one adapter used for all {@link org.eclipse.syson.sysml.Comment} instances. <!--
     * begin-user-doc --> <!-- end-user-doc -->
     *
     * @generated
     */
    protected CommentItemProvider commentItemProvider;

    /**
     * This creates an adapter for a {@link org.eclipse.syson.sysml.Comment}. <!-- begin-user-doc --> <!-- end-user-doc
     * -->
     *
     * @generated
     */
    @Override
    public Adapter createCommentAdapter() {
        if (this.commentItemProvider == null) {
            this.commentItemProvider = new CommentItemProvider(this);
        }

        return this.commentItemProvider;
    }

    /**
     * This keeps track of the one adapter used for all {@link org.eclipse.syson.sysml.ConcernDefinition} instances.
     * <!-- begin-user-doc --> <!-- end-user-doc -->
     *
     * @generated
     */
    protected ConcernDefinitionItemProvider concernDefinitionItemProvider;

    /**
     * This creates an adapter for a {@link org.eclipse.syson.sysml.ConcernDefinition}. <!-- begin-user-doc --> <!--
     * end-user-doc -->
     *
     * @generated
     */
    @Override
    public Adapter createConcernDefinitionAdapter() {
        if (this.concernDefinitionItemProvider == null) {
            this.concernDefinitionItemProvider = new ConcernDefinitionItemProvider(this);
        }

        return this.concernDefinitionItemProvider;
    }

    /**
     * This keeps track of the one adapter used for all {@link org.eclipse.syson.sysml.ConcernUsage} instances. <!--
     * begin-user-doc --> <!-- end-user-doc -->
     *
     * @generated
     */
    protected ConcernUsageItemProvider concernUsageItemProvider;

    /**
     * This creates an adapter for a {@link org.eclipse.syson.sysml.ConcernUsage}. <!-- begin-user-doc --> <!--
     * end-user-doc -->
     *
     * @generated
     */
    @Override
    public Adapter createConcernUsageAdapter() {
        if (this.concernUsageItemProvider == null) {
            this.concernUsageItemProvider = new ConcernUsageItemProvider(this);
        }

        return this.concernUsageItemProvider;
    }

    /**
     * This keeps track of the one adapter used for all {@link org.eclipse.syson.sysml.ConjugatedPortDefinition}
     * instances. <!-- begin-user-doc --> <!-- end-user-doc -->
     *
     * @generated
     */
    protected ConjugatedPortDefinitionItemProvider conjugatedPortDefinitionItemProvider;

    /**
     * This creates an adapter for a {@link org.eclipse.syson.sysml.ConjugatedPortDefinition}. <!-- begin-user-doc -->
     * <!-- end-user-doc -->
     *
     * @generated
     */
    @Override
    public Adapter createConjugatedPortDefinitionAdapter() {
        if (this.conjugatedPortDefinitionItemProvider == null) {
            this.conjugatedPortDefinitionItemProvider = new ConjugatedPortDefinitionItemProvider(this);
        }

        return this.conjugatedPortDefinitionItemProvider;
    }

    /**
     * This keeps track of the one adapter used for all {@link org.eclipse.syson.sysml.ConjugatedPortTyping} instances.
     * <!-- begin-user-doc --> <!-- end-user-doc -->
     *
     * @generated
     */
    protected ConjugatedPortTypingItemProvider conjugatedPortTypingItemProvider;

    /**
     * This creates an adapter for a {@link org.eclipse.syson.sysml.ConjugatedPortTyping}. <!-- begin-user-doc --> <!--
     * end-user-doc -->
     *
     * @generated
     */
    @Override
    public Adapter createConjugatedPortTypingAdapter() {
        if (this.conjugatedPortTypingItemProvider == null) {
            this.conjugatedPortTypingItemProvider = new ConjugatedPortTypingItemProvider(this);
        }

        return this.conjugatedPortTypingItemProvider;
    }

    /**
     * This keeps track of the one adapter used for all {@link org.eclipse.syson.sysml.Conjugation} instances. <!--
     * begin-user-doc --> <!-- end-user-doc -->
     *
     * @generated
     */
    protected ConjugationItemProvider conjugationItemProvider;

    /**
     * This creates an adapter for a {@link org.eclipse.syson.sysml.Conjugation}. <!-- begin-user-doc --> <!--
     * end-user-doc -->
     *
     * @generated
     */
    @Override
    public Adapter createConjugationAdapter() {
        if (this.conjugationItemProvider == null) {
            this.conjugationItemProvider = new ConjugationItemProvider(this);
        }

        return this.conjugationItemProvider;
    }

    /**
     * This keeps track of the one adapter used for all {@link org.eclipse.syson.sysml.ConnectionDefinition} instances.
     * <!-- begin-user-doc --> <!-- end-user-doc -->
     *
     * @generated
     */
    protected ConnectionDefinitionItemProvider connectionDefinitionItemProvider;

    /**
     * This creates an adapter for a {@link org.eclipse.syson.sysml.ConnectionDefinition}. <!-- begin-user-doc --> <!--
     * end-user-doc -->
     *
     * @generated
     */
    @Override
    public Adapter createConnectionDefinitionAdapter() {
        if (this.connectionDefinitionItemProvider == null) {
            this.connectionDefinitionItemProvider = new ConnectionDefinitionItemProvider(this);
        }

        return this.connectionDefinitionItemProvider;
    }

    /**
     * This keeps track of the one adapter used for all {@link org.eclipse.syson.sysml.ConnectionUsage} instances. <!--
     * begin-user-doc --> <!-- end-user-doc -->
     *
     * @generated
     */
    protected ConnectionUsageItemProvider connectionUsageItemProvider;

    /**
     * This creates an adapter for a {@link org.eclipse.syson.sysml.ConnectionUsage}. <!-- begin-user-doc --> <!--
     * end-user-doc -->
     *
     * @generated
     */
    @Override
    public Adapter createConnectionUsageAdapter() {
        if (this.connectionUsageItemProvider == null) {
            this.connectionUsageItemProvider = new ConnectionUsageItemProvider(this);
        }

        return this.connectionUsageItemProvider;
    }

    /**
     * This keeps track of the one adapter used for all {@link org.eclipse.syson.sysml.Connector} instances. <!--
     * begin-user-doc --> <!-- end-user-doc -->
     *
     * @generated
     */
    protected ConnectorItemProvider connectorItemProvider;

    /**
     * This creates an adapter for a {@link org.eclipse.syson.sysml.Connector}. <!-- begin-user-doc --> <!--
     * end-user-doc -->
     *
     * @generated
     */
    @Override
    public Adapter createConnectorAdapter() {
        if (this.connectorItemProvider == null) {
            this.connectorItemProvider = new ConnectorItemProvider(this);
        }

        return this.connectorItemProvider;
    }

    /**
     * This keeps track of the one adapter used for all {@link org.eclipse.syson.sysml.ConstraintDefinition} instances.
     * <!-- begin-user-doc --> <!-- end-user-doc -->
     *
     * @generated
     */
    protected ConstraintDefinitionItemProvider constraintDefinitionItemProvider;

    /**
     * This creates an adapter for a {@link org.eclipse.syson.sysml.ConstraintDefinition}. <!-- begin-user-doc --> <!--
     * end-user-doc -->
     *
     * @generated
     */
    @Override
    public Adapter createConstraintDefinitionAdapter() {
        if (this.constraintDefinitionItemProvider == null) {
            this.constraintDefinitionItemProvider = new ConstraintDefinitionItemProvider(this);
        }

        return this.constraintDefinitionItemProvider;
    }

    /**
     * This keeps track of the one adapter used for all {@link org.eclipse.syson.sysml.ConstraintUsage} instances. <!--
     * begin-user-doc --> <!-- end-user-doc -->
     *
     * @generated
     */
    protected ConstraintUsageItemProvider constraintUsageItemProvider;

    /**
     * This creates an adapter for a {@link org.eclipse.syson.sysml.ConstraintUsage}. <!-- begin-user-doc --> <!--
     * end-user-doc -->
     *
     * @generated
     */
    @Override
    public Adapter createConstraintUsageAdapter() {
        if (this.constraintUsageItemProvider == null) {
            this.constraintUsageItemProvider = new ConstraintUsageItemProvider(this);
        }

        return this.constraintUsageItemProvider;
    }

    /**
     * This keeps track of the one adapter used for all {@link org.eclipse.syson.sysml.DataType} instances. <!--
     * begin-user-doc --> <!-- end-user-doc -->
     *
     * @generated
     */
    protected DataTypeItemProvider dataTypeItemProvider;

    /**
     * This creates an adapter for a {@link org.eclipse.syson.sysml.DataType}. <!-- begin-user-doc --> <!-- end-user-doc
     * -->
     *
     * @generated
     */
    @Override
    public Adapter createDataTypeAdapter() {
        if (this.dataTypeItemProvider == null) {
            this.dataTypeItemProvider = new DataTypeItemProvider(this);
        }

        return this.dataTypeItemProvider;
    }

    /**
     * This keeps track of the one adapter used for all {@link org.eclipse.syson.sysml.DecisionNode} instances. <!--
     * begin-user-doc --> <!-- end-user-doc -->
     *
     * @generated
     */
    protected DecisionNodeItemProvider decisionNodeItemProvider;

    /**
     * This creates an adapter for a {@link org.eclipse.syson.sysml.DecisionNode}. <!-- begin-user-doc --> <!--
     * end-user-doc -->
     *
     * @generated
     */
    @Override
    public Adapter createDecisionNodeAdapter() {
        if (this.decisionNodeItemProvider == null) {
            this.decisionNodeItemProvider = new DecisionNodeItemProvider(this);
        }

        return this.decisionNodeItemProvider;
    }

    /**
     * This keeps track of the one adapter used for all {@link org.eclipse.syson.sysml.Definition} instances. <!--
     * begin-user-doc --> <!-- end-user-doc -->
     *
     * @generated
     */
    protected DefinitionItemProvider definitionItemProvider;

    /**
     * This creates an adapter for a {@link org.eclipse.syson.sysml.Definition}. <!-- begin-user-doc --> <!--
     * end-user-doc -->
     *
     * @generated
     */
    @Override
    public Adapter createDefinitionAdapter() {
        if (this.definitionItemProvider == null) {
            this.definitionItemProvider = new DefinitionItemProvider(this);
        }

        return this.definitionItemProvider;
    }

    /**
     * This keeps track of the one adapter used for all {@link org.eclipse.syson.sysml.Dependency} instances. <!--
     * begin-user-doc --> <!-- end-user-doc -->
     *
     * @generated
     */
    protected DependencyItemProvider dependencyItemProvider;

    /**
     * This creates an adapter for a {@link org.eclipse.syson.sysml.Dependency}. <!-- begin-user-doc --> <!--
     * end-user-doc -->
     *
     * @generated
     */
    @Override
    public Adapter createDependencyAdapter() {
        if (this.dependencyItemProvider == null) {
            this.dependencyItemProvider = new DependencyItemProvider(this);
        }

        return this.dependencyItemProvider;
    }

    /**
     * This keeps track of the one adapter used for all {@link org.eclipse.syson.sysml.Differencing} instances. <!--
     * begin-user-doc --> <!-- end-user-doc -->
     *
     * @generated
     */
    protected DifferencingItemProvider differencingItemProvider;

    /**
     * This creates an adapter for a {@link org.eclipse.syson.sysml.Differencing}. <!-- begin-user-doc --> <!--
     * end-user-doc -->
     *
     * @generated
     */
    @Override
    public Adapter createDifferencingAdapter() {
        if (this.differencingItemProvider == null) {
            this.differencingItemProvider = new DifferencingItemProvider(this);
        }

        return this.differencingItemProvider;
    }

    /**
     * This keeps track of the one adapter used for all {@link org.eclipse.syson.sysml.Disjoining} instances. <!--
     * begin-user-doc --> <!-- end-user-doc -->
     *
     * @generated
     */
    protected DisjoiningItemProvider disjoiningItemProvider;

    /**
     * This creates an adapter for a {@link org.eclipse.syson.sysml.Disjoining}. <!-- begin-user-doc --> <!--
     * end-user-doc -->
     *
     * @generated
     */
    @Override
    public Adapter createDisjoiningAdapter() {
        if (this.disjoiningItemProvider == null) {
            this.disjoiningItemProvider = new DisjoiningItemProvider(this);
        }

        return this.disjoiningItemProvider;
    }

    /**
     * This keeps track of the one adapter used for all {@link org.eclipse.syson.sysml.Documentation} instances. <!--
     * begin-user-doc --> <!-- end-user-doc -->
     *
     * @generated
     */
    protected DocumentationItemProvider documentationItemProvider;

    /**
     * This creates an adapter for a {@link org.eclipse.syson.sysml.Documentation}. <!-- begin-user-doc --> <!--
     * end-user-doc -->
     *
     * @generated
     */
    @Override
    public Adapter createDocumentationAdapter() {
        if (this.documentationItemProvider == null) {
            this.documentationItemProvider = new DocumentationItemProvider(this);
        }

        return this.documentationItemProvider;
    }

    /**
     * This keeps track of the one adapter used for all {@link org.eclipse.syson.sysml.ElementFilterMembership}
     * instances. <!-- begin-user-doc --> <!-- end-user-doc -->
     *
     * @generated
     */
    protected ElementFilterMembershipItemProvider elementFilterMembershipItemProvider;

    /**
     * This creates an adapter for a {@link org.eclipse.syson.sysml.ElementFilterMembership}. <!-- begin-user-doc -->
     * <!-- end-user-doc -->
     *
     * @generated
     */
    @Override
    public Adapter createElementFilterMembershipAdapter() {
        if (this.elementFilterMembershipItemProvider == null) {
            this.elementFilterMembershipItemProvider = new ElementFilterMembershipItemProvider(this);
        }

        return this.elementFilterMembershipItemProvider;
    }

    /**
     * This keeps track of the one adapter used for all {@link org.eclipse.syson.sysml.EndFeatureMembership} instances.
     * <!-- begin-user-doc --> <!-- end-user-doc -->
     *
     * @generated
     */
    protected EndFeatureMembershipItemProvider endFeatureMembershipItemProvider;

    /**
     * This creates an adapter for a {@link org.eclipse.syson.sysml.EndFeatureMembership}. <!-- begin-user-doc --> <!--
     * end-user-doc -->
     *
     * @generated
     */
    @Override
    public Adapter createEndFeatureMembershipAdapter() {
        if (this.endFeatureMembershipItemProvider == null) {
            this.endFeatureMembershipItemProvider = new EndFeatureMembershipItemProvider(this);
        }

        return this.endFeatureMembershipItemProvider;
    }

    /**
     * This keeps track of the one adapter used for all {@link org.eclipse.syson.sysml.EnumerationDefinition} instances.
     * <!-- begin-user-doc --> <!-- end-user-doc -->
     *
     * @generated
     */
    protected EnumerationDefinitionItemProvider enumerationDefinitionItemProvider;

    /**
     * This creates an adapter for a {@link org.eclipse.syson.sysml.EnumerationDefinition}. <!-- begin-user-doc --> <!--
     * end-user-doc -->
     *
     * @generated
     */
    @Override
    public Adapter createEnumerationDefinitionAdapter() {
        if (this.enumerationDefinitionItemProvider == null) {
            this.enumerationDefinitionItemProvider = new EnumerationDefinitionItemProvider(this);
        }

        return this.enumerationDefinitionItemProvider;
    }

    /**
     * This keeps track of the one adapter used for all {@link org.eclipse.syson.sysml.EnumerationUsage} instances. <!--
     * begin-user-doc --> <!-- end-user-doc -->
     *
     * @generated
     */
    protected EnumerationUsageItemProvider enumerationUsageItemProvider;

    /**
     * This creates an adapter for a {@link org.eclipse.syson.sysml.EnumerationUsage}. <!-- begin-user-doc --> <!--
     * end-user-doc -->
     *
     * @generated
     */
    @Override
    public Adapter createEnumerationUsageAdapter() {
        if (this.enumerationUsageItemProvider == null) {
            this.enumerationUsageItemProvider = new EnumerationUsageItemProvider(this);
        }

        return this.enumerationUsageItemProvider;
    }

    /**
     * This keeps track of the one adapter used for all {@link org.eclipse.syson.sysml.EventOccurrenceUsage} instances.
     * <!-- begin-user-doc --> <!-- end-user-doc -->
     *
     * @generated
     */
    protected EventOccurrenceUsageItemProvider eventOccurrenceUsageItemProvider;

    /**
     * This creates an adapter for a {@link org.eclipse.syson.sysml.EventOccurrenceUsage}. <!-- begin-user-doc --> <!--
     * end-user-doc -->
     *
     * @generated
     */
    @Override
    public Adapter createEventOccurrenceUsageAdapter() {
        if (this.eventOccurrenceUsageItemProvider == null) {
            this.eventOccurrenceUsageItemProvider = new EventOccurrenceUsageItemProvider(this);
        }

        return this.eventOccurrenceUsageItemProvider;
    }

    /**
     * This keeps track of the one adapter used for all {@link org.eclipse.syson.sysml.ExhibitStateUsage} instances.
     * <!-- begin-user-doc --> <!-- end-user-doc -->
     *
     * @generated
     */
    protected ExhibitStateUsageItemProvider exhibitStateUsageItemProvider;

    /**
     * This creates an adapter for a {@link org.eclipse.syson.sysml.ExhibitStateUsage}. <!-- begin-user-doc --> <!--
     * end-user-doc -->
     *
     * @generated
     */
    @Override
    public Adapter createExhibitStateUsageAdapter() {
        if (this.exhibitStateUsageItemProvider == null) {
            this.exhibitStateUsageItemProvider = new ExhibitStateUsageItemProvider(this);
        }

        return this.exhibitStateUsageItemProvider;
    }

    /**
     * This keeps track of the one adapter used for all {@link org.eclipse.syson.sysml.Expression} instances. <!--
     * begin-user-doc --> <!-- end-user-doc -->
     *
     * @generated
     */
    protected ExpressionItemProvider expressionItemProvider;

    /**
     * This creates an adapter for a {@link org.eclipse.syson.sysml.Expression}. <!-- begin-user-doc --> <!--
     * end-user-doc -->
     *
     * @generated
     */
    @Override
    public Adapter createExpressionAdapter() {
        if (this.expressionItemProvider == null) {
            this.expressionItemProvider = new ExpressionItemProvider(this);
        }

        return this.expressionItemProvider;
    }

    /**
     * This keeps track of the one adapter used for all {@link org.eclipse.syson.sysml.Feature} instances. <!--
     * begin-user-doc --> <!-- end-user-doc -->
     *
     * @generated
     */
    protected FeatureItemProvider featureItemProvider;

    /**
     * This creates an adapter for a {@link org.eclipse.syson.sysml.Feature}. <!-- begin-user-doc --> <!-- end-user-doc
     * -->
     *
     * @generated
     */
    @Override
    public Adapter createFeatureAdapter() {
        if (this.featureItemProvider == null) {
            this.featureItemProvider = new FeatureItemProvider(this);
        }

        return this.featureItemProvider;
    }

    /**
     * This keeps track of the one adapter used for all {@link org.eclipse.syson.sysml.FeatureChainExpression}
     * instances. <!-- begin-user-doc --> <!-- end-user-doc -->
     *
     * @generated
     */
    protected FeatureChainExpressionItemProvider featureChainExpressionItemProvider;

    /**
     * This creates an adapter for a {@link org.eclipse.syson.sysml.FeatureChainExpression}. <!-- begin-user-doc -->
     * <!-- end-user-doc -->
     *
     * @generated
     */
    @Override
    public Adapter createFeatureChainExpressionAdapter() {
        if (this.featureChainExpressionItemProvider == null) {
            this.featureChainExpressionItemProvider = new FeatureChainExpressionItemProvider(this);
        }

        return this.featureChainExpressionItemProvider;
    }

    /**
     * This keeps track of the one adapter used for all {@link org.eclipse.syson.sysml.FeatureChaining} instances. <!--
     * begin-user-doc --> <!-- end-user-doc -->
     *
     * @generated
     */
    protected FeatureChainingItemProvider featureChainingItemProvider;

    /**
     * This creates an adapter for a {@link org.eclipse.syson.sysml.FeatureChaining}. <!-- begin-user-doc --> <!--
     * end-user-doc -->
     *
     * @generated
     */
    @Override
    public Adapter createFeatureChainingAdapter() {
        if (this.featureChainingItemProvider == null) {
            this.featureChainingItemProvider = new FeatureChainingItemProvider(this);
        }

        return this.featureChainingItemProvider;
    }

    /**
     * This keeps track of the one adapter used for all {@link org.eclipse.syson.sysml.FeatureInverting} instances. <!--
     * begin-user-doc --> <!-- end-user-doc -->
     *
     * @generated
     */
    protected FeatureInvertingItemProvider featureInvertingItemProvider;

    /**
     * This creates an adapter for a {@link org.eclipse.syson.sysml.FeatureInverting}. <!-- begin-user-doc --> <!--
     * end-user-doc -->
     *
     * @generated
     */
    @Override
    public Adapter createFeatureInvertingAdapter() {
        if (this.featureInvertingItemProvider == null) {
            this.featureInvertingItemProvider = new FeatureInvertingItemProvider(this);
        }

        return this.featureInvertingItemProvider;
    }

    /**
     * This keeps track of the one adapter used for all {@link org.eclipse.syson.sysml.FeatureMembership} instances.
     * <!-- begin-user-doc --> <!-- end-user-doc -->
     *
     * @generated
     */
    protected FeatureMembershipItemProvider featureMembershipItemProvider;

    /**
     * This creates an adapter for a {@link org.eclipse.syson.sysml.FeatureMembership}. <!-- begin-user-doc --> <!--
     * end-user-doc -->
     *
     * @generated
     */
    @Override
    public Adapter createFeatureMembershipAdapter() {
        if (this.featureMembershipItemProvider == null) {
            this.featureMembershipItemProvider = new FeatureMembershipItemProvider(this);
        }

        return this.featureMembershipItemProvider;
    }

    /**
     * This keeps track of the one adapter used for all {@link org.eclipse.syson.sysml.FeatureReferenceExpression}
     * instances. <!-- begin-user-doc --> <!-- end-user-doc -->
     *
     * @generated
     */
    protected FeatureReferenceExpressionItemProvider featureReferenceExpressionItemProvider;

    /**
     * This creates an adapter for a {@link org.eclipse.syson.sysml.FeatureReferenceExpression}. <!-- begin-user-doc -->
     * <!-- end-user-doc -->
     *
     * @generated
     */
    @Override
    public Adapter createFeatureReferenceExpressionAdapter() {
        if (this.featureReferenceExpressionItemProvider == null) {
            this.featureReferenceExpressionItemProvider = new FeatureReferenceExpressionItemProvider(this);
        }

        return this.featureReferenceExpressionItemProvider;
    }

    /**
     * This keeps track of the one adapter used for all {@link org.eclipse.syson.sysml.FeatureTyping} instances. <!--
     * begin-user-doc --> <!-- end-user-doc -->
     *
     * @generated
     */
    protected FeatureTypingItemProvider featureTypingItemProvider;

    /**
     * This creates an adapter for a {@link org.eclipse.syson.sysml.FeatureTyping}. <!-- begin-user-doc --> <!--
     * end-user-doc -->
     *
     * @generated
     */
    @Override
    public Adapter createFeatureTypingAdapter() {
        if (this.featureTypingItemProvider == null) {
            this.featureTypingItemProvider = new FeatureTypingItemProvider(this);
        }

        return this.featureTypingItemProvider;
    }

    /**
     * This keeps track of the one adapter used for all {@link org.eclipse.syson.sysml.FeatureValue} instances. <!--
     * begin-user-doc --> <!-- end-user-doc -->
     *
     * @generated
     */
    protected FeatureValueItemProvider featureValueItemProvider;

    /**
     * This creates an adapter for a {@link org.eclipse.syson.sysml.FeatureValue}. <!-- begin-user-doc --> <!--
     * end-user-doc -->
     *
     * @generated
     */
    @Override
    public Adapter createFeatureValueAdapter() {
        if (this.featureValueItemProvider == null) {
            this.featureValueItemProvider = new FeatureValueItemProvider(this);
        }

        return this.featureValueItemProvider;
    }

    /**
     * This keeps track of the one adapter used for all {@link org.eclipse.syson.sysml.FlowConnectionDefinition}
     * instances. <!-- begin-user-doc --> <!-- end-user-doc -->
     *
     * @generated
     */
    protected FlowConnectionDefinitionItemProvider flowConnectionDefinitionItemProvider;

    /**
     * This creates an adapter for a {@link org.eclipse.syson.sysml.FlowConnectionDefinition}. <!-- begin-user-doc -->
     * <!-- end-user-doc -->
     *
     * @generated
     */
    @Override
    public Adapter createFlowConnectionDefinitionAdapter() {
        if (this.flowConnectionDefinitionItemProvider == null) {
            this.flowConnectionDefinitionItemProvider = new FlowConnectionDefinitionItemProvider(this);
        }

        return this.flowConnectionDefinitionItemProvider;
    }

    /**
     * This keeps track of the one adapter used for all {@link org.eclipse.syson.sysml.FlowConnectionUsage} instances.
     * <!-- begin-user-doc --> <!-- end-user-doc -->
     *
     * @generated
     */
    protected FlowConnectionUsageItemProvider flowConnectionUsageItemProvider;

    /**
     * This creates an adapter for a {@link org.eclipse.syson.sysml.FlowConnectionUsage}. <!-- begin-user-doc --> <!--
     * end-user-doc -->
     *
     * @generated
     */
    @Override
    public Adapter createFlowConnectionUsageAdapter() {
        if (this.flowConnectionUsageItemProvider == null) {
            this.flowConnectionUsageItemProvider = new FlowConnectionUsageItemProvider(this);
        }

        return this.flowConnectionUsageItemProvider;
    }

    /**
     * This keeps track of the one adapter used for all {@link org.eclipse.syson.sysml.ForkNode} instances. <!--
     * begin-user-doc --> <!-- end-user-doc -->
     *
     * @generated
     */
    protected ForkNodeItemProvider forkNodeItemProvider;

    /**
     * This creates an adapter for a {@link org.eclipse.syson.sysml.ForkNode}. <!-- begin-user-doc --> <!-- end-user-doc
     * -->
     *
     * @generated
     */
    @Override
    public Adapter createForkNodeAdapter() {
        if (this.forkNodeItemProvider == null) {
            this.forkNodeItemProvider = new ForkNodeItemProvider(this);
        }

        return this.forkNodeItemProvider;
    }

    /**
     * This keeps track of the one adapter used for all {@link org.eclipse.syson.sysml.ForLoopActionUsage} instances.
     * <!-- begin-user-doc --> <!-- end-user-doc -->
     *
     * @generated
     */
    protected ForLoopActionUsageItemProvider forLoopActionUsageItemProvider;

    /**
     * This creates an adapter for a {@link org.eclipse.syson.sysml.ForLoopActionUsage}. <!-- begin-user-doc --> <!--
     * end-user-doc -->
     *
     * @generated
     */
    @Override
    public Adapter createForLoopActionUsageAdapter() {
        if (this.forLoopActionUsageItemProvider == null) {
            this.forLoopActionUsageItemProvider = new ForLoopActionUsageItemProvider(this);
        }

        return this.forLoopActionUsageItemProvider;
    }

    /**
     * This keeps track of the one adapter used for all {@link org.eclipse.syson.sysml.FramedConcernMembership}
     * instances. <!-- begin-user-doc --> <!-- end-user-doc -->
     *
     * @generated
     */
    protected FramedConcernMembershipItemProvider framedConcernMembershipItemProvider;

    /**
     * This creates an adapter for a {@link org.eclipse.syson.sysml.FramedConcernMembership}. <!-- begin-user-doc -->
     * <!-- end-user-doc -->
     *
     * @generated
     */
    @Override
    public Adapter createFramedConcernMembershipAdapter() {
        if (this.framedConcernMembershipItemProvider == null) {
            this.framedConcernMembershipItemProvider = new FramedConcernMembershipItemProvider(this);
        }

        return this.framedConcernMembershipItemProvider;
    }

    /**
     * This keeps track of the one adapter used for all {@link org.eclipse.syson.sysml.Function} instances. <!--
     * begin-user-doc --> <!-- end-user-doc -->
     *
     * @generated
     */
    protected FunctionItemProvider functionItemProvider;

    /**
     * This creates an adapter for a {@link org.eclipse.syson.sysml.Function}. <!-- begin-user-doc --> <!-- end-user-doc
     * -->
     *
     * @generated
     */
    @Override
    public Adapter createFunctionAdapter() {
        if (this.functionItemProvider == null) {
            this.functionItemProvider = new FunctionItemProvider(this);
        }

        return this.functionItemProvider;
    }

    /**
     * This keeps track of the one adapter used for all {@link org.eclipse.syson.sysml.IfActionUsage} instances. <!--
     * begin-user-doc --> <!-- end-user-doc -->
     *
     * @generated
     */
    protected IfActionUsageItemProvider ifActionUsageItemProvider;

    /**
     * This creates an adapter for a {@link org.eclipse.syson.sysml.IfActionUsage}. <!-- begin-user-doc --> <!--
     * end-user-doc -->
     *
     * @generated
     */
    @Override
    public Adapter createIfActionUsageAdapter() {
        if (this.ifActionUsageItemProvider == null) {
            this.ifActionUsageItemProvider = new IfActionUsageItemProvider(this);
        }

        return this.ifActionUsageItemProvider;
    }

    /**
     * This keeps track of the one adapter used for all {@link org.eclipse.syson.sysml.IncludeUseCaseUsage} instances.
     * <!-- begin-user-doc --> <!-- end-user-doc -->
     *
     * @generated
     */
    protected IncludeUseCaseUsageItemProvider includeUseCaseUsageItemProvider;

    /**
     * This creates an adapter for a {@link org.eclipse.syson.sysml.IncludeUseCaseUsage}. <!-- begin-user-doc --> <!--
     * end-user-doc -->
     *
     * @generated
     */
    @Override
    public Adapter createIncludeUseCaseUsageAdapter() {
        if (this.includeUseCaseUsageItemProvider == null) {
            this.includeUseCaseUsageItemProvider = new IncludeUseCaseUsageItemProvider(this);
        }

        return this.includeUseCaseUsageItemProvider;
    }

    /**
     * This keeps track of the one adapter used for all {@link org.eclipse.syson.sysml.Interaction} instances. <!--
     * begin-user-doc --> <!-- end-user-doc -->
     *
     * @generated
     */
    protected InteractionItemProvider interactionItemProvider;

    /**
     * This creates an adapter for a {@link org.eclipse.syson.sysml.Interaction}. <!-- begin-user-doc --> <!--
     * end-user-doc -->
     *
     * @generated
     */
    @Override
    public Adapter createInteractionAdapter() {
        if (this.interactionItemProvider == null) {
            this.interactionItemProvider = new InteractionItemProvider(this);
        }

        return this.interactionItemProvider;
    }

    /**
     * This keeps track of the one adapter used for all {@link org.eclipse.syson.sysml.InterfaceDefinition} instances.
     * <!-- begin-user-doc --> <!-- end-user-doc -->
     *
     * @generated
     */
    protected InterfaceDefinitionItemProvider interfaceDefinitionItemProvider;

    /**
     * This creates an adapter for a {@link org.eclipse.syson.sysml.InterfaceDefinition}. <!-- begin-user-doc --> <!--
     * end-user-doc -->
     *
     * @generated
     */
    @Override
    public Adapter createInterfaceDefinitionAdapter() {
        if (this.interfaceDefinitionItemProvider == null) {
            this.interfaceDefinitionItemProvider = new InterfaceDefinitionItemProvider(this);
        }

        return this.interfaceDefinitionItemProvider;
    }

    /**
     * This keeps track of the one adapter used for all {@link org.eclipse.syson.sysml.InterfaceUsage} instances. <!--
     * begin-user-doc --> <!-- end-user-doc -->
     *
     * @generated
     */
    protected InterfaceUsageItemProvider interfaceUsageItemProvider;

    /**
     * This creates an adapter for a {@link org.eclipse.syson.sysml.InterfaceUsage}. <!-- begin-user-doc --> <!--
     * end-user-doc -->
     *
     * @generated
     */
    @Override
    public Adapter createInterfaceUsageAdapter() {
        if (this.interfaceUsageItemProvider == null) {
            this.interfaceUsageItemProvider = new InterfaceUsageItemProvider(this);
        }

        return this.interfaceUsageItemProvider;
    }

    /**
     * This keeps track of the one adapter used for all {@link org.eclipse.syson.sysml.Intersecting} instances. <!--
     * begin-user-doc --> <!-- end-user-doc -->
     *
     * @generated
     */
    protected IntersectingItemProvider intersectingItemProvider;

    /**
     * This creates an adapter for a {@link org.eclipse.syson.sysml.Intersecting}. <!-- begin-user-doc --> <!--
     * end-user-doc -->
     *
     * @generated
     */
    @Override
    public Adapter createIntersectingAdapter() {
        if (this.intersectingItemProvider == null) {
            this.intersectingItemProvider = new IntersectingItemProvider(this);
        }

        return this.intersectingItemProvider;
    }

    /**
     * This keeps track of the one adapter used for all {@link org.eclipse.syson.sysml.Invariant} instances. <!--
     * begin-user-doc --> <!-- end-user-doc -->
     *
     * @generated
     */
    protected InvariantItemProvider invariantItemProvider;

    /**
     * This creates an adapter for a {@link org.eclipse.syson.sysml.Invariant}. <!-- begin-user-doc --> <!--
     * end-user-doc -->
     *
     * @generated
     */
    @Override
    public Adapter createInvariantAdapter() {
        if (this.invariantItemProvider == null) {
            this.invariantItemProvider = new InvariantItemProvider(this);
        }

        return this.invariantItemProvider;
    }

    /**
     * This keeps track of the one adapter used for all {@link org.eclipse.syson.sysml.InvocationExpression} instances.
     * <!-- begin-user-doc --> <!-- end-user-doc -->
     *
     * @generated
     */
    protected InvocationExpressionItemProvider invocationExpressionItemProvider;

    /**
     * This creates an adapter for a {@link org.eclipse.syson.sysml.InvocationExpression}. <!-- begin-user-doc --> <!--
     * end-user-doc -->
     *
     * @generated
     */
    @Override
    public Adapter createInvocationExpressionAdapter() {
        if (this.invocationExpressionItemProvider == null) {
            this.invocationExpressionItemProvider = new InvocationExpressionItemProvider(this);
        }

        return this.invocationExpressionItemProvider;
    }

    /**
     * This keeps track of the one adapter used for all {@link org.eclipse.syson.sysml.ItemDefinition} instances. <!--
     * begin-user-doc --> <!-- end-user-doc -->
     *
     * @generated
     */
    protected ItemDefinitionItemProvider itemDefinitionItemProvider;

    /**
     * This creates an adapter for a {@link org.eclipse.syson.sysml.ItemDefinition}. <!-- begin-user-doc --> <!--
     * end-user-doc -->
     *
     * @generated
     */
    @Override
    public Adapter createItemDefinitionAdapter() {
        if (this.itemDefinitionItemProvider == null) {
            this.itemDefinitionItemProvider = new ItemDefinitionItemProvider(this);
        }

        return this.itemDefinitionItemProvider;
    }

    /**
     * This keeps track of the one adapter used for all {@link org.eclipse.syson.sysml.ItemFeature} instances. <!--
     * begin-user-doc --> <!-- end-user-doc -->
     *
     * @generated
     */
    protected ItemFeatureItemProvider itemFeatureItemProvider;

    /**
     * This creates an adapter for a {@link org.eclipse.syson.sysml.ItemFeature}. <!-- begin-user-doc --> <!--
     * end-user-doc -->
     *
     * @generated
     */
    @Override
    public Adapter createItemFeatureAdapter() {
        if (this.itemFeatureItemProvider == null) {
            this.itemFeatureItemProvider = new ItemFeatureItemProvider(this);
        }

        return this.itemFeatureItemProvider;
    }

    /**
     * This keeps track of the one adapter used for all {@link org.eclipse.syson.sysml.ItemFlow} instances. <!--
     * begin-user-doc --> <!-- end-user-doc -->
     *
     * @generated
     */
    protected ItemFlowItemProvider itemFlowItemProvider;

    /**
     * This creates an adapter for a {@link org.eclipse.syson.sysml.ItemFlow}. <!-- begin-user-doc --> <!-- end-user-doc
     * -->
     *
     * @generated
     */
    @Override
    public Adapter createItemFlowAdapter() {
        if (this.itemFlowItemProvider == null) {
            this.itemFlowItemProvider = new ItemFlowItemProvider(this);
        }

        return this.itemFlowItemProvider;
    }

    /**
     * This keeps track of the one adapter used for all {@link org.eclipse.syson.sysml.ItemFlowEnd} instances. <!--
     * begin-user-doc --> <!-- end-user-doc -->
     *
     * @generated
     */
    protected ItemFlowEndItemProvider itemFlowEndItemProvider;

    /**
     * This creates an adapter for a {@link org.eclipse.syson.sysml.ItemFlowEnd}. <!-- begin-user-doc --> <!--
     * end-user-doc -->
     *
     * @generated
     */
    @Override
    public Adapter createItemFlowEndAdapter() {
        if (this.itemFlowEndItemProvider == null) {
            this.itemFlowEndItemProvider = new ItemFlowEndItemProvider(this);
        }

        return this.itemFlowEndItemProvider;
    }

    /**
     * This keeps track of the one adapter used for all {@link org.eclipse.syson.sysml.ItemUsage} instances. <!--
     * begin-user-doc --> <!-- end-user-doc -->
     *
     * @generated
     */
    protected ItemUsageItemProvider itemUsageItemProvider;

    /**
     * This creates an adapter for a {@link org.eclipse.syson.sysml.ItemUsage}. <!-- begin-user-doc --> <!--
     * end-user-doc -->
     *
     * @generated
     */
    @Override
    public Adapter createItemUsageAdapter() {
        if (this.itemUsageItemProvider == null) {
            this.itemUsageItemProvider = new ItemUsageItemProvider(this);
        }

        return this.itemUsageItemProvider;
    }

    /**
     * This keeps track of the one adapter used for all {@link org.eclipse.syson.sysml.JoinNode} instances. <!--
     * begin-user-doc --> <!-- end-user-doc -->
     *
     * @generated
     */
    protected JoinNodeItemProvider joinNodeItemProvider;

    /**
     * This creates an adapter for a {@link org.eclipse.syson.sysml.JoinNode}. <!-- begin-user-doc --> <!-- end-user-doc
     * -->
     *
     * @generated
     */
    @Override
    public Adapter createJoinNodeAdapter() {
        if (this.joinNodeItemProvider == null) {
            this.joinNodeItemProvider = new JoinNodeItemProvider(this);
        }

        return this.joinNodeItemProvider;
    }

    /**
     * This keeps track of the one adapter used for all {@link org.eclipse.syson.sysml.LibraryPackage} instances. <!--
     * begin-user-doc --> <!-- end-user-doc -->
     *
     * @generated
     */
    protected LibraryPackageItemProvider libraryPackageItemProvider;

    /**
     * This creates an adapter for a {@link org.eclipse.syson.sysml.LibraryPackage}. <!-- begin-user-doc --> <!--
     * end-user-doc -->
     *
     * @generated
     */
    @Override
    public Adapter createLibraryPackageAdapter() {
        if (this.libraryPackageItemProvider == null) {
            this.libraryPackageItemProvider = new LibraryPackageItemProvider(this);
        }

        return this.libraryPackageItemProvider;
    }

    /**
     * This keeps track of the one adapter used for all {@link org.eclipse.syson.sysml.LifeClass} instances. <!--
     * begin-user-doc --> <!-- end-user-doc -->
     *
     * @generated
     */
    protected LifeClassItemProvider lifeClassItemProvider;

    /**
     * This creates an adapter for a {@link org.eclipse.syson.sysml.LifeClass}. <!-- begin-user-doc --> <!--
     * end-user-doc -->
     *
     * @generated
     */
    @Override
    public Adapter createLifeClassAdapter() {
        if (this.lifeClassItemProvider == null) {
            this.lifeClassItemProvider = new LifeClassItemProvider(this);
        }

        return this.lifeClassItemProvider;
    }

    /**
     * This keeps track of the one adapter used for all {@link org.eclipse.syson.sysml.LiteralBoolean} instances. <!--
     * begin-user-doc --> <!-- end-user-doc -->
     *
     * @generated
     */
    protected LiteralBooleanItemProvider literalBooleanItemProvider;

    /**
     * This creates an adapter for a {@link org.eclipse.syson.sysml.LiteralBoolean}. <!-- begin-user-doc --> <!--
     * end-user-doc -->
     *
     * @generated
     */
    @Override
    public Adapter createLiteralBooleanAdapter() {
        if (this.literalBooleanItemProvider == null) {
            this.literalBooleanItemProvider = new LiteralBooleanItemProvider(this);
        }

        return this.literalBooleanItemProvider;
    }

    /**
     * This keeps track of the one adapter used for all {@link org.eclipse.syson.sysml.LiteralExpression} instances.
     * <!-- begin-user-doc --> <!-- end-user-doc -->
     *
     * @generated
     */
    protected LiteralExpressionItemProvider literalExpressionItemProvider;

    /**
     * This creates an adapter for a {@link org.eclipse.syson.sysml.LiteralExpression}. <!-- begin-user-doc --> <!--
     * end-user-doc -->
     *
     * @generated
     */
    @Override
    public Adapter createLiteralExpressionAdapter() {
        if (this.literalExpressionItemProvider == null) {
            this.literalExpressionItemProvider = new LiteralExpressionItemProvider(this);
        }

        return this.literalExpressionItemProvider;
    }

    /**
     * This keeps track of the one adapter used for all {@link org.eclipse.syson.sysml.LiteralInfinity} instances. <!--
     * begin-user-doc --> <!-- end-user-doc -->
     *
     * @generated
     */
    protected LiteralInfinityItemProvider literalInfinityItemProvider;

    /**
     * This creates an adapter for a {@link org.eclipse.syson.sysml.LiteralInfinity}. <!-- begin-user-doc --> <!--
     * end-user-doc -->
     *
     * @generated
     */
    @Override
    public Adapter createLiteralInfinityAdapter() {
        if (this.literalInfinityItemProvider == null) {
            this.literalInfinityItemProvider = new LiteralInfinityItemProvider(this);
        }

        return this.literalInfinityItemProvider;
    }

    /**
     * This keeps track of the one adapter used for all {@link org.eclipse.syson.sysml.LiteralInteger} instances. <!--
     * begin-user-doc --> <!-- end-user-doc -->
     *
     * @generated
     */
    protected LiteralIntegerItemProvider literalIntegerItemProvider;

    /**
     * This creates an adapter for a {@link org.eclipse.syson.sysml.LiteralInteger}. <!-- begin-user-doc --> <!--
     * end-user-doc -->
     *
     * @generated
     */
    @Override
    public Adapter createLiteralIntegerAdapter() {
        if (this.literalIntegerItemProvider == null) {
            this.literalIntegerItemProvider = new LiteralIntegerItemProvider(this);
        }

        return this.literalIntegerItemProvider;
    }

    /**
     * This keeps track of the one adapter used for all {@link org.eclipse.syson.sysml.LiteralRational} instances. <!--
     * begin-user-doc --> <!-- end-user-doc -->
     *
     * @generated
     */
    protected LiteralRationalItemProvider literalRationalItemProvider;

    /**
     * This creates an adapter for a {@link org.eclipse.syson.sysml.LiteralRational}. <!-- begin-user-doc --> <!--
     * end-user-doc -->
     *
     * @generated
     */
    @Override
    public Adapter createLiteralRationalAdapter() {
        if (this.literalRationalItemProvider == null) {
            this.literalRationalItemProvider = new LiteralRationalItemProvider(this);
        }

        return this.literalRationalItemProvider;
    }

    /**
     * This keeps track of the one adapter used for all {@link org.eclipse.syson.sysml.LiteralString} instances. <!--
     * begin-user-doc --> <!-- end-user-doc -->
     *
     * @generated
     */
    protected LiteralStringItemProvider literalStringItemProvider;

    /**
     * This creates an adapter for a {@link org.eclipse.syson.sysml.LiteralString}. <!-- begin-user-doc --> <!--
     * end-user-doc -->
     *
     * @generated
     */
    @Override
    public Adapter createLiteralStringAdapter() {
        if (this.literalStringItemProvider == null) {
            this.literalStringItemProvider = new LiteralStringItemProvider(this);
        }

        return this.literalStringItemProvider;
    }

    /**
     * This keeps track of the one adapter used for all {@link org.eclipse.syson.sysml.Membership} instances. <!--
     * begin-user-doc --> <!-- end-user-doc -->
     *
     * @generated
     */
    protected MembershipItemProvider membershipItemProvider;

    /**
     * This creates an adapter for a {@link org.eclipse.syson.sysml.Membership}. <!-- begin-user-doc --> <!--
     * end-user-doc -->
     *
     * @generated
     */
    @Override
    public Adapter createMembershipAdapter() {
        if (this.membershipItemProvider == null) {
            this.membershipItemProvider = new MembershipItemProvider(this);
        }

        return this.membershipItemProvider;
    }

    /**
     * This keeps track of the one adapter used for all {@link org.eclipse.syson.sysml.MembershipExpose} instances. <!--
     * begin-user-doc --> <!-- end-user-doc -->
     *
     * @generated
     */
    protected MembershipExposeItemProvider membershipExposeItemProvider;

    /**
     * This creates an adapter for a {@link org.eclipse.syson.sysml.MembershipExpose}. <!-- begin-user-doc --> <!--
     * end-user-doc -->
     *
     * @generated
     */
    @Override
    public Adapter createMembershipExposeAdapter() {
        if (this.membershipExposeItemProvider == null) {
            this.membershipExposeItemProvider = new MembershipExposeItemProvider(this);
        }

        return this.membershipExposeItemProvider;
    }

    /**
     * This keeps track of the one adapter used for all {@link org.eclipse.syson.sysml.MembershipImport} instances. <!--
     * begin-user-doc --> <!-- end-user-doc -->
     *
     * @generated
     */
    protected MembershipImportItemProvider membershipImportItemProvider;

    /**
     * This creates an adapter for a {@link org.eclipse.syson.sysml.MembershipImport}. <!-- begin-user-doc --> <!--
     * end-user-doc -->
     *
     * @generated
     */
    @Override
    public Adapter createMembershipImportAdapter() {
        if (this.membershipImportItemProvider == null) {
            this.membershipImportItemProvider = new MembershipImportItemProvider(this);
        }

        return this.membershipImportItemProvider;
    }

    /**
     * This keeps track of the one adapter used for all {@link org.eclipse.syson.sysml.MergeNode} instances. <!--
     * begin-user-doc --> <!-- end-user-doc -->
     *
     * @generated
     */
    protected MergeNodeItemProvider mergeNodeItemProvider;

    /**
     * This creates an adapter for a {@link org.eclipse.syson.sysml.MergeNode}. <!-- begin-user-doc --> <!--
     * end-user-doc -->
     *
     * @generated
     */
    @Override
    public Adapter createMergeNodeAdapter() {
        if (this.mergeNodeItemProvider == null) {
            this.mergeNodeItemProvider = new MergeNodeItemProvider(this);
        }

        return this.mergeNodeItemProvider;
    }

    /**
     * This keeps track of the one adapter used for all {@link org.eclipse.syson.sysml.Metaclass} instances. <!--
     * begin-user-doc --> <!-- end-user-doc -->
     *
     * @generated
     */
    protected MetaclassItemProvider metaclassItemProvider;

    /**
     * This creates an adapter for a {@link org.eclipse.syson.sysml.Metaclass}. <!-- begin-user-doc --> <!--
     * end-user-doc -->
     *
     * @generated
     */
    @Override
    public Adapter createMetaclassAdapter() {
        if (this.metaclassItemProvider == null) {
            this.metaclassItemProvider = new MetaclassItemProvider(this);
        }

        return this.metaclassItemProvider;
    }

    /**
     * This keeps track of the one adapter used for all {@link org.eclipse.syson.sysml.MetadataAccessExpression}
     * instances. <!-- begin-user-doc --> <!-- end-user-doc -->
     *
     * @generated
     */
    protected MetadataAccessExpressionItemProvider metadataAccessExpressionItemProvider;

    /**
     * This creates an adapter for a {@link org.eclipse.syson.sysml.MetadataAccessExpression}. <!-- begin-user-doc -->
     * <!-- end-user-doc -->
     *
     * @generated
     */
    @Override
    public Adapter createMetadataAccessExpressionAdapter() {
        if (this.metadataAccessExpressionItemProvider == null) {
            this.metadataAccessExpressionItemProvider = new MetadataAccessExpressionItemProvider(this);
        }

        return this.metadataAccessExpressionItemProvider;
    }

    /**
     * This keeps track of the one adapter used for all {@link org.eclipse.syson.sysml.MetadataDefinition} instances.
     * <!-- begin-user-doc --> <!-- end-user-doc -->
     *
     * @generated
     */
    protected MetadataDefinitionItemProvider metadataDefinitionItemProvider;

    /**
     * This creates an adapter for a {@link org.eclipse.syson.sysml.MetadataDefinition}. <!-- begin-user-doc --> <!--
     * end-user-doc -->
     *
     * @generated
     */
    @Override
    public Adapter createMetadataDefinitionAdapter() {
        if (this.metadataDefinitionItemProvider == null) {
            this.metadataDefinitionItemProvider = new MetadataDefinitionItemProvider(this);
        }

        return this.metadataDefinitionItemProvider;
    }

    /**
     * This keeps track of the one adapter used for all {@link org.eclipse.syson.sysml.MetadataFeature} instances. <!--
     * begin-user-doc --> <!-- end-user-doc -->
     *
     * @generated
     */
    protected MetadataFeatureItemProvider metadataFeatureItemProvider;

    /**
     * This creates an adapter for a {@link org.eclipse.syson.sysml.MetadataFeature}. <!-- begin-user-doc --> <!--
     * end-user-doc -->
     *
     * @generated
     */
    @Override
    public Adapter createMetadataFeatureAdapter() {
        if (this.metadataFeatureItemProvider == null) {
            this.metadataFeatureItemProvider = new MetadataFeatureItemProvider(this);
        }

        return this.metadataFeatureItemProvider;
    }

    /**
     * This keeps track of the one adapter used for all {@link org.eclipse.syson.sysml.MetadataUsage} instances. <!--
     * begin-user-doc --> <!-- end-user-doc -->
     *
     * @generated
     */
    protected MetadataUsageItemProvider metadataUsageItemProvider;

    /**
     * This creates an adapter for a {@link org.eclipse.syson.sysml.MetadataUsage}. <!-- begin-user-doc --> <!--
     * end-user-doc -->
     *
     * @generated
     */
    @Override
    public Adapter createMetadataUsageAdapter() {
        if (this.metadataUsageItemProvider == null) {
            this.metadataUsageItemProvider = new MetadataUsageItemProvider(this);
        }

        return this.metadataUsageItemProvider;
    }

    /**
     * This keeps track of the one adapter used for all {@link org.eclipse.syson.sysml.Multiplicity} instances. <!--
     * begin-user-doc --> <!-- end-user-doc -->
     *
     * @generated
     */
    protected MultiplicityItemProvider multiplicityItemProvider;

    /**
     * This creates an adapter for a {@link org.eclipse.syson.sysml.Multiplicity}. <!-- begin-user-doc --> <!--
     * end-user-doc -->
     *
     * @generated
     */
    @Override
    public Adapter createMultiplicityAdapter() {
        if (this.multiplicityItemProvider == null) {
            this.multiplicityItemProvider = new MultiplicityItemProvider(this);
        }

        return this.multiplicityItemProvider;
    }

    /**
     * This keeps track of the one adapter used for all {@link org.eclipse.syson.sysml.MultiplicityRange} instances.
     * <!-- begin-user-doc --> <!-- end-user-doc -->
     *
     * @generated
     */
    protected MultiplicityRangeItemProvider multiplicityRangeItemProvider;

    /**
     * This creates an adapter for a {@link org.eclipse.syson.sysml.MultiplicityRange}. <!-- begin-user-doc --> <!--
     * end-user-doc -->
     *
     * @generated
     */
    @Override
    public Adapter createMultiplicityRangeAdapter() {
        if (this.multiplicityRangeItemProvider == null) {
            this.multiplicityRangeItemProvider = new MultiplicityRangeItemProvider(this);
        }

        return this.multiplicityRangeItemProvider;
    }

    /**
     * This keeps track of the one adapter used for all {@link org.eclipse.syson.sysml.Namespace} instances. <!--
     * begin-user-doc --> <!-- end-user-doc -->
     *
     * @generated
     */
    protected NamespaceItemProvider namespaceItemProvider;

    /**
     * This creates an adapter for a {@link org.eclipse.syson.sysml.Namespace}. <!-- begin-user-doc --> <!--
     * end-user-doc -->
     *
     * @generated
     */
    @Override
    public Adapter createNamespaceAdapter() {
        if (this.namespaceItemProvider == null) {
            this.namespaceItemProvider = new NamespaceItemProvider(this);
        }

        return this.namespaceItemProvider;
    }

    /**
     * This keeps track of the one adapter used for all {@link org.eclipse.syson.sysml.NamespaceExpose} instances. <!--
     * begin-user-doc --> <!-- end-user-doc -->
     *
     * @generated
     */
    protected NamespaceExposeItemProvider namespaceExposeItemProvider;

    /**
     * This creates an adapter for a {@link org.eclipse.syson.sysml.NamespaceExpose}. <!-- begin-user-doc --> <!--
     * end-user-doc -->
     *
     * @generated
     */
    @Override
    public Adapter createNamespaceExposeAdapter() {
        if (this.namespaceExposeItemProvider == null) {
            this.namespaceExposeItemProvider = new NamespaceExposeItemProvider(this);
        }

        return this.namespaceExposeItemProvider;
    }

    /**
     * This keeps track of the one adapter used for all {@link org.eclipse.syson.sysml.NamespaceImport} instances. <!--
     * begin-user-doc --> <!-- end-user-doc -->
     *
     * @generated
     */
    protected NamespaceImportItemProvider namespaceImportItemProvider;

    /**
     * This creates an adapter for a {@link org.eclipse.syson.sysml.NamespaceImport}. <!-- begin-user-doc --> <!--
     * end-user-doc -->
     *
     * @generated
     */
    @Override
    public Adapter createNamespaceImportAdapter() {
        if (this.namespaceImportItemProvider == null) {
            this.namespaceImportItemProvider = new NamespaceImportItemProvider(this);
        }

        return this.namespaceImportItemProvider;
    }

    /**
     * This keeps track of the one adapter used for all {@link org.eclipse.syson.sysml.NullExpression} instances. <!--
     * begin-user-doc --> <!-- end-user-doc -->
     *
     * @generated
     */
    protected NullExpressionItemProvider nullExpressionItemProvider;

    /**
     * This creates an adapter for a {@link org.eclipse.syson.sysml.NullExpression}. <!-- begin-user-doc --> <!--
     * end-user-doc -->
     *
     * @generated
     */
    @Override
    public Adapter createNullExpressionAdapter() {
        if (this.nullExpressionItemProvider == null) {
            this.nullExpressionItemProvider = new NullExpressionItemProvider(this);
        }

        return this.nullExpressionItemProvider;
    }

    /**
     * This keeps track of the one adapter used for all {@link org.eclipse.syson.sysml.ObjectiveMembership} instances.
     * <!-- begin-user-doc --> <!-- end-user-doc -->
     *
     * @generated
     */
    protected ObjectiveMembershipItemProvider objectiveMembershipItemProvider;

    /**
     * This creates an adapter for a {@link org.eclipse.syson.sysml.ObjectiveMembership}. <!-- begin-user-doc --> <!--
     * end-user-doc -->
     *
     * @generated
     */
    @Override
    public Adapter createObjectiveMembershipAdapter() {
        if (this.objectiveMembershipItemProvider == null) {
            this.objectiveMembershipItemProvider = new ObjectiveMembershipItemProvider(this);
        }

        return this.objectiveMembershipItemProvider;
    }

    /**
     * This keeps track of the one adapter used for all {@link org.eclipse.syson.sysml.OccurrenceDefinition} instances.
     * <!-- begin-user-doc --> <!-- end-user-doc -->
     *
     * @generated
     */
    protected OccurrenceDefinitionItemProvider occurrenceDefinitionItemProvider;

    /**
     * This creates an adapter for a {@link org.eclipse.syson.sysml.OccurrenceDefinition}. <!-- begin-user-doc --> <!--
     * end-user-doc -->
     *
     * @generated
     */
    @Override
    public Adapter createOccurrenceDefinitionAdapter() {
        if (this.occurrenceDefinitionItemProvider == null) {
            this.occurrenceDefinitionItemProvider = new OccurrenceDefinitionItemProvider(this);
        }

        return this.occurrenceDefinitionItemProvider;
    }

    /**
     * This keeps track of the one adapter used for all {@link org.eclipse.syson.sysml.OccurrenceUsage} instances. <!--
     * begin-user-doc --> <!-- end-user-doc -->
     *
     * @generated
     */
    protected OccurrenceUsageItemProvider occurrenceUsageItemProvider;

    /**
     * This creates an adapter for a {@link org.eclipse.syson.sysml.OccurrenceUsage}. <!-- begin-user-doc --> <!--
     * end-user-doc -->
     *
     * @generated
     */
    @Override
    public Adapter createOccurrenceUsageAdapter() {
        if (this.occurrenceUsageItemProvider == null) {
            this.occurrenceUsageItemProvider = new OccurrenceUsageItemProvider(this);
        }

        return this.occurrenceUsageItemProvider;
    }

    /**
     * This keeps track of the one adapter used for all {@link org.eclipse.syson.sysml.OperatorExpression} instances.
     * <!-- begin-user-doc --> <!-- end-user-doc -->
     *
     * @generated
     */
    protected OperatorExpressionItemProvider operatorExpressionItemProvider;

    /**
     * This creates an adapter for a {@link org.eclipse.syson.sysml.OperatorExpression}. <!-- begin-user-doc --> <!--
     * end-user-doc -->
     *
     * @generated
     */
    @Override
    public Adapter createOperatorExpressionAdapter() {
        if (this.operatorExpressionItemProvider == null) {
            this.operatorExpressionItemProvider = new OperatorExpressionItemProvider(this);
        }

        return this.operatorExpressionItemProvider;
    }

    /**
     * This keeps track of the one adapter used for all {@link org.eclipse.syson.sysml.OwningMembership} instances. <!--
     * begin-user-doc --> <!-- end-user-doc -->
     *
     * @generated
     */
    protected OwningMembershipItemProvider owningMembershipItemProvider;

    /**
     * This creates an adapter for a {@link org.eclipse.syson.sysml.OwningMembership}. <!-- begin-user-doc --> <!--
     * end-user-doc -->
     *
     * @generated
     */
    @Override
    public Adapter createOwningMembershipAdapter() {
        if (this.owningMembershipItemProvider == null) {
            this.owningMembershipItemProvider = new OwningMembershipItemProvider(this);
        }

        return this.owningMembershipItemProvider;
    }

    /**
     * This keeps track of the one adapter used for all {@link org.eclipse.syson.sysml.Package} instances. <!--
     * begin-user-doc --> <!-- end-user-doc -->
     *
     * @generated
     */
    protected PackageItemProvider packageItemProvider;

    /**
     * This creates an adapter for a {@link org.eclipse.syson.sysml.Package}. <!-- begin-user-doc --> <!-- end-user-doc
     * -->
     *
     * @generated
     */
    @Override
    public Adapter createPackageAdapter() {
        if (this.packageItemProvider == null) {
            this.packageItemProvider = new PackageItemProvider(this);
        }

        return this.packageItemProvider;
    }

    /**
     * This keeps track of the one adapter used for all {@link org.eclipse.syson.sysml.ParameterMembership} instances.
     * <!-- begin-user-doc --> <!-- end-user-doc -->
     *
     * @generated
     */
    protected ParameterMembershipItemProvider parameterMembershipItemProvider;

    /**
     * This creates an adapter for a {@link org.eclipse.syson.sysml.ParameterMembership}. <!-- begin-user-doc --> <!--
     * end-user-doc -->
     *
     * @generated
     */
    @Override
    public Adapter createParameterMembershipAdapter() {
        if (this.parameterMembershipItemProvider == null) {
            this.parameterMembershipItemProvider = new ParameterMembershipItemProvider(this);
        }

        return this.parameterMembershipItemProvider;
    }

    /**
     * This keeps track of the one adapter used for all {@link org.eclipse.syson.sysml.PartDefinition} instances. <!--
     * begin-user-doc --> <!-- end-user-doc -->
     *
     * @generated
     */
    protected PartDefinitionItemProvider partDefinitionItemProvider;

    /**
     * This creates an adapter for a {@link org.eclipse.syson.sysml.PartDefinition}. <!-- begin-user-doc --> <!--
     * end-user-doc -->
     *
     * @generated
     */
    @Override
    public Adapter createPartDefinitionAdapter() {
        if (this.partDefinitionItemProvider == null) {
            this.partDefinitionItemProvider = new PartDefinitionItemProvider(this);
        }

        return this.partDefinitionItemProvider;
    }

    /**
     * This keeps track of the one adapter used for all {@link org.eclipse.syson.sysml.PartUsage} instances. <!--
     * begin-user-doc --> <!-- end-user-doc -->
     *
     * @generated
     */
    protected PartUsageItemProvider partUsageItemProvider;

    /**
     * This creates an adapter for a {@link org.eclipse.syson.sysml.PartUsage}. <!-- begin-user-doc --> <!--
     * end-user-doc -->
     *
     * @generated
     */
    @Override
    public Adapter createPartUsageAdapter() {
        if (this.partUsageItemProvider == null) {
            this.partUsageItemProvider = new PartUsageItemProvider(this);
        }

        return this.partUsageItemProvider;
    }

    /**
     * This keeps track of the one adapter used for all {@link org.eclipse.syson.sysml.PerformActionUsage} instances.
     * <!-- begin-user-doc --> <!-- end-user-doc -->
     *
     * @generated
     */
    protected PerformActionUsageItemProvider performActionUsageItemProvider;

    /**
     * This creates an adapter for a {@link org.eclipse.syson.sysml.PerformActionUsage}. <!-- begin-user-doc --> <!--
     * end-user-doc -->
     *
     * @generated
     */
    @Override
    public Adapter createPerformActionUsageAdapter() {
        if (this.performActionUsageItemProvider == null) {
            this.performActionUsageItemProvider = new PerformActionUsageItemProvider(this);
        }

        return this.performActionUsageItemProvider;
    }

    /**
     * This keeps track of the one adapter used for all {@link org.eclipse.syson.sysml.PortConjugation} instances. <!--
     * begin-user-doc --> <!-- end-user-doc -->
     *
     * @generated
     */
    protected PortConjugationItemProvider portConjugationItemProvider;

    /**
     * This creates an adapter for a {@link org.eclipse.syson.sysml.PortConjugation}. <!-- begin-user-doc --> <!--
     * end-user-doc -->
     *
     * @generated
     */
    @Override
    public Adapter createPortConjugationAdapter() {
        if (this.portConjugationItemProvider == null) {
            this.portConjugationItemProvider = new PortConjugationItemProvider(this);
        }

        return this.portConjugationItemProvider;
    }

    /**
     * This keeps track of the one adapter used for all {@link org.eclipse.syson.sysml.PortDefinition} instances. <!--
     * begin-user-doc --> <!-- end-user-doc -->
     *
     * @generated
     */
    protected PortDefinitionItemProvider portDefinitionItemProvider;

    /**
     * This creates an adapter for a {@link org.eclipse.syson.sysml.PortDefinition}. <!-- begin-user-doc --> <!--
     * end-user-doc -->
     *
     * @generated
     */
    @Override
    public Adapter createPortDefinitionAdapter() {
        if (this.portDefinitionItemProvider == null) {
            this.portDefinitionItemProvider = new PortDefinitionItemProvider(this);
        }

        return this.portDefinitionItemProvider;
    }

    /**
     * This keeps track of the one adapter used for all {@link org.eclipse.syson.sysml.PortUsage} instances. <!--
     * begin-user-doc --> <!-- end-user-doc -->
     *
     * @generated
     */
    protected PortUsageItemProvider portUsageItemProvider;

    /**
     * This creates an adapter for a {@link org.eclipse.syson.sysml.PortUsage}. <!-- begin-user-doc --> <!--
     * end-user-doc -->
     *
     * @generated
     */
    @Override
    public Adapter createPortUsageAdapter() {
        if (this.portUsageItemProvider == null) {
            this.portUsageItemProvider = new PortUsageItemProvider(this);
        }

        return this.portUsageItemProvider;
    }

    /**
     * This keeps track of the one adapter used for all {@link org.eclipse.syson.sysml.Predicate} instances. <!--
     * begin-user-doc --> <!-- end-user-doc -->
     *
     * @generated
     */
    protected PredicateItemProvider predicateItemProvider;

    /**
     * This creates an adapter for a {@link org.eclipse.syson.sysml.Predicate}. <!-- begin-user-doc --> <!--
     * end-user-doc -->
     *
     * @generated
     */
    @Override
    public Adapter createPredicateAdapter() {
        if (this.predicateItemProvider == null) {
            this.predicateItemProvider = new PredicateItemProvider(this);
        }

        return this.predicateItemProvider;
    }

    /**
     * This keeps track of the one adapter used for all {@link org.eclipse.syson.sysml.Redefinition} instances. <!--
     * begin-user-doc --> <!-- end-user-doc -->
     *
     * @generated
     */
    protected RedefinitionItemProvider redefinitionItemProvider;

    /**
     * This creates an adapter for a {@link org.eclipse.syson.sysml.Redefinition}. <!-- begin-user-doc --> <!--
     * end-user-doc -->
     *
     * @generated
     */
    @Override
    public Adapter createRedefinitionAdapter() {
        if (this.redefinitionItemProvider == null) {
            this.redefinitionItemProvider = new RedefinitionItemProvider(this);
        }

        return this.redefinitionItemProvider;
    }

    /**
     * This keeps track of the one adapter used for all {@link org.eclipse.syson.sysml.ReferenceSubsetting} instances.
     * <!-- begin-user-doc --> <!-- end-user-doc -->
     *
     * @generated
     */
    protected ReferenceSubsettingItemProvider referenceSubsettingItemProvider;

    /**
     * This creates an adapter for a {@link org.eclipse.syson.sysml.ReferenceSubsetting}. <!-- begin-user-doc --> <!--
     * end-user-doc -->
     *
     * @generated
     */
    @Override
    public Adapter createReferenceSubsettingAdapter() {
        if (this.referenceSubsettingItemProvider == null) {
            this.referenceSubsettingItemProvider = new ReferenceSubsettingItemProvider(this);
        }

        return this.referenceSubsettingItemProvider;
    }

    /**
     * This keeps track of the one adapter used for all {@link org.eclipse.syson.sysml.ReferenceUsage} instances. <!--
     * begin-user-doc --> <!-- end-user-doc -->
     *
     * @generated
     */
    protected ReferenceUsageItemProvider referenceUsageItemProvider;

    /**
     * This creates an adapter for a {@link org.eclipse.syson.sysml.ReferenceUsage}. <!-- begin-user-doc --> <!--
     * end-user-doc -->
     *
     * @generated
     */
    @Override
    public Adapter createReferenceUsageAdapter() {
        if (this.referenceUsageItemProvider == null) {
            this.referenceUsageItemProvider = new ReferenceUsageItemProvider(this);
        }

        return this.referenceUsageItemProvider;
    }

    /**
     * This keeps track of the one adapter used for all {@link org.eclipse.syson.sysml.RenderingDefinition} instances.
     * <!-- begin-user-doc --> <!-- end-user-doc -->
     *
     * @generated
     */
    protected RenderingDefinitionItemProvider renderingDefinitionItemProvider;

    /**
     * This creates an adapter for a {@link org.eclipse.syson.sysml.RenderingDefinition}. <!-- begin-user-doc --> <!--
     * end-user-doc -->
     *
     * @generated
     */
    @Override
    public Adapter createRenderingDefinitionAdapter() {
        if (this.renderingDefinitionItemProvider == null) {
            this.renderingDefinitionItemProvider = new RenderingDefinitionItemProvider(this);
        }

        return this.renderingDefinitionItemProvider;
    }

    /**
     * This keeps track of the one adapter used for all {@link org.eclipse.syson.sysml.RenderingUsage} instances. <!--
     * begin-user-doc --> <!-- end-user-doc -->
     *
     * @generated
     */
    protected RenderingUsageItemProvider renderingUsageItemProvider;

    /**
     * This creates an adapter for a {@link org.eclipse.syson.sysml.RenderingUsage}. <!-- begin-user-doc --> <!--
     * end-user-doc -->
     *
     * @generated
     */
    @Override
    public Adapter createRenderingUsageAdapter() {
        if (this.renderingUsageItemProvider == null) {
            this.renderingUsageItemProvider = new RenderingUsageItemProvider(this);
        }

        return this.renderingUsageItemProvider;
    }

    /**
     * This keeps track of the one adapter used for all {@link org.eclipse.syson.sysml.RequirementConstraintMembership}
     * instances. <!-- begin-user-doc --> <!-- end-user-doc -->
     *
     * @generated
     */
    protected RequirementConstraintMembershipItemProvider requirementConstraintMembershipItemProvider;

    /**
     * This creates an adapter for a {@link org.eclipse.syson.sysml.RequirementConstraintMembership}. <!--
     * begin-user-doc --> <!-- end-user-doc -->
     *
     * @generated
     */
    @Override
    public Adapter createRequirementConstraintMembershipAdapter() {
        if (this.requirementConstraintMembershipItemProvider == null) {
            this.requirementConstraintMembershipItemProvider = new RequirementConstraintMembershipItemProvider(this);
        }

        return this.requirementConstraintMembershipItemProvider;
    }

    /**
     * This keeps track of the one adapter used for all {@link org.eclipse.syson.sysml.RequirementDefinition} instances.
     * <!-- begin-user-doc --> <!-- end-user-doc -->
     *
     * @generated
     */
    protected RequirementDefinitionItemProvider requirementDefinitionItemProvider;

    /**
     * This creates an adapter for a {@link org.eclipse.syson.sysml.RequirementDefinition}. <!-- begin-user-doc --> <!--
     * end-user-doc -->
     *
     * @generated
     */
    @Override
    public Adapter createRequirementDefinitionAdapter() {
        if (this.requirementDefinitionItemProvider == null) {
            this.requirementDefinitionItemProvider = new RequirementDefinitionItemProvider(this);
        }

        return this.requirementDefinitionItemProvider;
    }

    /**
     * This keeps track of the one adapter used for all {@link org.eclipse.syson.sysml.RequirementUsage} instances. <!--
     * begin-user-doc --> <!-- end-user-doc -->
     *
     * @generated
     */
    protected RequirementUsageItemProvider requirementUsageItemProvider;

    /**
     * This creates an adapter for a {@link org.eclipse.syson.sysml.RequirementUsage}. <!-- begin-user-doc --> <!--
     * end-user-doc -->
     *
     * @generated
     */
    @Override
    public Adapter createRequirementUsageAdapter() {
        if (this.requirementUsageItemProvider == null) {
            this.requirementUsageItemProvider = new RequirementUsageItemProvider(this);
        }

        return this.requirementUsageItemProvider;
    }

    /**
     * This keeps track of the one adapter used for all
     * {@link org.eclipse.syson.sysml.RequirementVerificationMembership} instances. <!-- begin-user-doc --> <!--
     * end-user-doc -->
     *
     * @generated
     */
    protected RequirementVerificationMembershipItemProvider requirementVerificationMembershipItemProvider;

    /**
     * This creates an adapter for a {@link org.eclipse.syson.sysml.RequirementVerificationMembership}. <!--
     * begin-user-doc --> <!-- end-user-doc -->
     *
     * @generated
     */
    @Override
    public Adapter createRequirementVerificationMembershipAdapter() {
        if (this.requirementVerificationMembershipItemProvider == null) {
            this.requirementVerificationMembershipItemProvider = new RequirementVerificationMembershipItemProvider(this);
        }

        return this.requirementVerificationMembershipItemProvider;
    }

    /**
     * This keeps track of the one adapter used for all {@link org.eclipse.syson.sysml.ResultExpressionMembership}
     * instances. <!-- begin-user-doc --> <!-- end-user-doc -->
     *
     * @generated
     */
    protected ResultExpressionMembershipItemProvider resultExpressionMembershipItemProvider;

    /**
     * This creates an adapter for a {@link org.eclipse.syson.sysml.ResultExpressionMembership}. <!-- begin-user-doc -->
     * <!-- end-user-doc -->
     *
     * @generated
     */
    @Override
    public Adapter createResultExpressionMembershipAdapter() {
        if (this.resultExpressionMembershipItemProvider == null) {
            this.resultExpressionMembershipItemProvider = new ResultExpressionMembershipItemProvider(this);
        }

        return this.resultExpressionMembershipItemProvider;
    }

    /**
     * This keeps track of the one adapter used for all {@link org.eclipse.syson.sysml.ReturnParameterMembership}
     * instances. <!-- begin-user-doc --> <!-- end-user-doc -->
     *
     * @generated
     */
    protected ReturnParameterMembershipItemProvider returnParameterMembershipItemProvider;

    /**
     * This creates an adapter for a {@link org.eclipse.syson.sysml.ReturnParameterMembership}. <!-- begin-user-doc -->
     * <!-- end-user-doc -->
     *
     * @generated
     */
    @Override
    public Adapter createReturnParameterMembershipAdapter() {
        if (this.returnParameterMembershipItemProvider == null) {
            this.returnParameterMembershipItemProvider = new ReturnParameterMembershipItemProvider(this);
        }

        return this.returnParameterMembershipItemProvider;
    }

    /**
     * This keeps track of the one adapter used for all {@link org.eclipse.syson.sysml.SatisfyRequirementUsage}
     * instances. <!-- begin-user-doc --> <!-- end-user-doc -->
     *
     * @generated
     */
    protected SatisfyRequirementUsageItemProvider satisfyRequirementUsageItemProvider;

    /**
     * This creates an adapter for a {@link org.eclipse.syson.sysml.SatisfyRequirementUsage}. <!-- begin-user-doc -->
     * <!-- end-user-doc -->
     *
     * @generated
     */
    @Override
    public Adapter createSatisfyRequirementUsageAdapter() {
        if (this.satisfyRequirementUsageItemProvider == null) {
            this.satisfyRequirementUsageItemProvider = new SatisfyRequirementUsageItemProvider(this);
        }

        return this.satisfyRequirementUsageItemProvider;
    }

    /**
     * This keeps track of the one adapter used for all {@link org.eclipse.syson.sysml.SelectExpression} instances. <!--
     * begin-user-doc --> <!-- end-user-doc -->
     *
     * @generated
     */
    protected SelectExpressionItemProvider selectExpressionItemProvider;

    /**
     * This creates an adapter for a {@link org.eclipse.syson.sysml.SelectExpression}. <!-- begin-user-doc --> <!--
     * end-user-doc -->
     *
     * @generated
     */
    @Override
    public Adapter createSelectExpressionAdapter() {
        if (this.selectExpressionItemProvider == null) {
            this.selectExpressionItemProvider = new SelectExpressionItemProvider(this);
        }

        return this.selectExpressionItemProvider;
    }

    /**
     * This keeps track of the one adapter used for all {@link org.eclipse.syson.sysml.SendActionUsage} instances. <!--
     * begin-user-doc --> <!-- end-user-doc -->
     *
     * @generated
     */
    protected SendActionUsageItemProvider sendActionUsageItemProvider;

    /**
     * This creates an adapter for a {@link org.eclipse.syson.sysml.SendActionUsage}. <!-- begin-user-doc --> <!--
     * end-user-doc -->
     *
     * @generated
     */
    @Override
    public Adapter createSendActionUsageAdapter() {
        if (this.sendActionUsageItemProvider == null) {
            this.sendActionUsageItemProvider = new SendActionUsageItemProvider(this);
        }

        return this.sendActionUsageItemProvider;
    }

    /**
     * This keeps track of the one adapter used for all {@link org.eclipse.syson.sysml.Specialization} instances. <!--
     * begin-user-doc --> <!-- end-user-doc -->
     *
     * @generated
     */
    protected SpecializationItemProvider specializationItemProvider;

    /**
     * This creates an adapter for a {@link org.eclipse.syson.sysml.Specialization}. <!-- begin-user-doc --> <!--
     * end-user-doc -->
     *
     * @generated
     */
    @Override
    public Adapter createSpecializationAdapter() {
        if (this.specializationItemProvider == null) {
            this.specializationItemProvider = new SpecializationItemProvider(this);
        }

        return this.specializationItemProvider;
    }

    /**
     * This keeps track of the one adapter used for all {@link org.eclipse.syson.sysml.StakeholderMembership} instances.
     * <!-- begin-user-doc --> <!-- end-user-doc -->
     *
     * @generated
     */
    protected StakeholderMembershipItemProvider stakeholderMembershipItemProvider;

    /**
     * This creates an adapter for a {@link org.eclipse.syson.sysml.StakeholderMembership}. <!-- begin-user-doc --> <!--
     * end-user-doc -->
     *
     * @generated
     */
    @Override
    public Adapter createStakeholderMembershipAdapter() {
        if (this.stakeholderMembershipItemProvider == null) {
            this.stakeholderMembershipItemProvider = new StakeholderMembershipItemProvider(this);
        }

        return this.stakeholderMembershipItemProvider;
    }

    /**
     * This keeps track of the one adapter used for all {@link org.eclipse.syson.sysml.StateDefinition} instances. <!--
     * begin-user-doc --> <!-- end-user-doc -->
     *
     * @generated
     */
    protected StateDefinitionItemProvider stateDefinitionItemProvider;

    /**
     * This creates an adapter for a {@link org.eclipse.syson.sysml.StateDefinition}. <!-- begin-user-doc --> <!--
     * end-user-doc -->
     *
     * @generated
     */
    @Override
    public Adapter createStateDefinitionAdapter() {
        if (this.stateDefinitionItemProvider == null) {
            this.stateDefinitionItemProvider = new StateDefinitionItemProvider(this);
        }

        return this.stateDefinitionItemProvider;
    }

    /**
     * This keeps track of the one adapter used for all {@link org.eclipse.syson.sysml.StateSubactionMembership}
     * instances. <!-- begin-user-doc --> <!-- end-user-doc -->
     *
     * @generated
     */
    protected StateSubactionMembershipItemProvider stateSubactionMembershipItemProvider;

    /**
     * This creates an adapter for a {@link org.eclipse.syson.sysml.StateSubactionMembership}. <!-- begin-user-doc -->
     * <!-- end-user-doc -->
     *
     * @generated
     */
    @Override
    public Adapter createStateSubactionMembershipAdapter() {
        if (this.stateSubactionMembershipItemProvider == null) {
            this.stateSubactionMembershipItemProvider = new StateSubactionMembershipItemProvider(this);
        }

        return this.stateSubactionMembershipItemProvider;
    }

    /**
     * This keeps track of the one adapter used for all {@link org.eclipse.syson.sysml.StateUsage} instances. <!--
     * begin-user-doc --> <!-- end-user-doc -->
     *
     * @generated
     */
    protected StateUsageItemProvider stateUsageItemProvider;

    /**
     * This creates an adapter for a {@link org.eclipse.syson.sysml.StateUsage}. <!-- begin-user-doc --> <!--
     * end-user-doc -->
     *
     * @generated
     */
    @Override
    public Adapter createStateUsageAdapter() {
        if (this.stateUsageItemProvider == null) {
            this.stateUsageItemProvider = new StateUsageItemProvider(this);
        }

        return this.stateUsageItemProvider;
    }

    /**
     * This keeps track of the one adapter used for all {@link org.eclipse.syson.sysml.Step} instances. <!--
     * begin-user-doc --> <!-- end-user-doc -->
     *
     * @generated
     */
    protected StepItemProvider stepItemProvider;

    /**
     * This creates an adapter for a {@link org.eclipse.syson.sysml.Step}. <!-- begin-user-doc --> <!-- end-user-doc -->
     *
     * @generated
     */
    @Override
    public Adapter createStepAdapter() {
        if (this.stepItemProvider == null) {
            this.stepItemProvider = new StepItemProvider(this);
        }

        return this.stepItemProvider;
    }

    /**
     * This keeps track of the one adapter used for all {@link org.eclipse.syson.sysml.Structure} instances. <!--
     * begin-user-doc --> <!-- end-user-doc -->
     *
     * @generated
     */
    protected StructureItemProvider structureItemProvider;

    /**
     * This creates an adapter for a {@link org.eclipse.syson.sysml.Structure}. <!-- begin-user-doc --> <!--
     * end-user-doc -->
     *
     * @generated
     */
    @Override
    public Adapter createStructureAdapter() {
        if (this.structureItemProvider == null) {
            this.structureItemProvider = new StructureItemProvider(this);
        }

        return this.structureItemProvider;
    }

    /**
     * This keeps track of the one adapter used for all {@link org.eclipse.syson.sysml.Subclassification} instances.
     * <!-- begin-user-doc --> <!-- end-user-doc -->
     *
     * @generated
     */
    protected SubclassificationItemProvider subclassificationItemProvider;

    /**
     * This creates an adapter for a {@link org.eclipse.syson.sysml.Subclassification}. <!-- begin-user-doc --> <!--
     * end-user-doc -->
     *
     * @generated
     */
    @Override
    public Adapter createSubclassificationAdapter() {
        if (this.subclassificationItemProvider == null) {
            this.subclassificationItemProvider = new SubclassificationItemProvider(this);
        }

        return this.subclassificationItemProvider;
    }

    /**
     * This keeps track of the one adapter used for all {@link org.eclipse.syson.sysml.SubjectMembership} instances.
     * <!-- begin-user-doc --> <!-- end-user-doc -->
     *
     * @generated
     */
    protected SubjectMembershipItemProvider subjectMembershipItemProvider;

    /**
     * This creates an adapter for a {@link org.eclipse.syson.sysml.SubjectMembership}. <!-- begin-user-doc --> <!--
     * end-user-doc -->
     *
     * @generated
     */
    @Override
    public Adapter createSubjectMembershipAdapter() {
        if (this.subjectMembershipItemProvider == null) {
            this.subjectMembershipItemProvider = new SubjectMembershipItemProvider(this);
        }

        return this.subjectMembershipItemProvider;
    }

    /**
     * This keeps track of the one adapter used for all {@link org.eclipse.syson.sysml.Subsetting} instances. <!--
     * begin-user-doc --> <!-- end-user-doc -->
     *
     * @generated
     */
    protected SubsettingItemProvider subsettingItemProvider;

    /**
     * This creates an adapter for a {@link org.eclipse.syson.sysml.Subsetting}. <!-- begin-user-doc --> <!--
     * end-user-doc -->
     *
     * @generated
     */
    @Override
    public Adapter createSubsettingAdapter() {
        if (this.subsettingItemProvider == null) {
            this.subsettingItemProvider = new SubsettingItemProvider(this);
        }

        return this.subsettingItemProvider;
    }

    /**
     * This keeps track of the one adapter used for all {@link org.eclipse.syson.sysml.Succession} instances. <!--
     * begin-user-doc --> <!-- end-user-doc -->
     *
     * @generated
     */
    protected SuccessionItemProvider successionItemProvider;

    /**
     * This creates an adapter for a {@link org.eclipse.syson.sysml.Succession}. <!-- begin-user-doc --> <!--
     * end-user-doc -->
     *
     * @generated
     */
    @Override
    public Adapter createSuccessionAdapter() {
        if (this.successionItemProvider == null) {
            this.successionItemProvider = new SuccessionItemProvider(this);
        }

        return this.successionItemProvider;
    }

    /**
     * This keeps track of the one adapter used for all {@link org.eclipse.syson.sysml.SuccessionAsUsage} instances.
     * <!-- begin-user-doc --> <!-- end-user-doc -->
     *
     * @generated
     */
    protected SuccessionAsUsageItemProvider successionAsUsageItemProvider;

    /**
     * This creates an adapter for a {@link org.eclipse.syson.sysml.SuccessionAsUsage}. <!-- begin-user-doc --> <!--
     * end-user-doc -->
     *
     * @generated
     */
    @Override
    public Adapter createSuccessionAsUsageAdapter() {
        if (this.successionAsUsageItemProvider == null) {
            this.successionAsUsageItemProvider = new SuccessionAsUsageItemProvider(this);
        }

        return this.successionAsUsageItemProvider;
    }

    /**
     * This keeps track of the one adapter used for all {@link org.eclipse.syson.sysml.SuccessionFlowConnectionUsage}
     * instances. <!-- begin-user-doc --> <!-- end-user-doc -->
     *
     * @generated
     */
    protected SuccessionFlowConnectionUsageItemProvider successionFlowConnectionUsageItemProvider;

    /**
     * This creates an adapter for a {@link org.eclipse.syson.sysml.SuccessionFlowConnectionUsage}. <!-- begin-user-doc
     * --> <!-- end-user-doc -->
     *
     * @generated
     */
    @Override
    public Adapter createSuccessionFlowConnectionUsageAdapter() {
        if (this.successionFlowConnectionUsageItemProvider == null) {
            this.successionFlowConnectionUsageItemProvider = new SuccessionFlowConnectionUsageItemProvider(this);
        }

        return this.successionFlowConnectionUsageItemProvider;
    }

    /**
     * This keeps track of the one adapter used for all {@link org.eclipse.syson.sysml.SuccessionItemFlow} instances.
     * <!-- begin-user-doc --> <!-- end-user-doc -->
     *
     * @generated
     */
    protected SuccessionItemFlowItemProvider successionItemFlowItemProvider;

    /**
     * This creates an adapter for a {@link org.eclipse.syson.sysml.SuccessionItemFlow}. <!-- begin-user-doc --> <!--
     * end-user-doc -->
     *
     * @generated
     */
    @Override
    public Adapter createSuccessionItemFlowAdapter() {
        if (this.successionItemFlowItemProvider == null) {
            this.successionItemFlowItemProvider = new SuccessionItemFlowItemProvider(this);
        }

        return this.successionItemFlowItemProvider;
    }

    /**
     * This keeps track of the one adapter used for all {@link org.eclipse.syson.sysml.TextualRepresentation} instances.
     * <!-- begin-user-doc --> <!-- end-user-doc -->
     *
     * @generated
     */
    protected TextualRepresentationItemProvider textualRepresentationItemProvider;

    /**
     * This creates an adapter for a {@link org.eclipse.syson.sysml.TextualRepresentation}. <!-- begin-user-doc --> <!--
     * end-user-doc -->
     *
     * @generated
     */
    @Override
    public Adapter createTextualRepresentationAdapter() {
        if (this.textualRepresentationItemProvider == null) {
            this.textualRepresentationItemProvider = new TextualRepresentationItemProvider(this);
        }

        return this.textualRepresentationItemProvider;
    }

    /**
     * This keeps track of the one adapter used for all {@link org.eclipse.syson.sysml.TransitionFeatureMembership}
     * instances. <!-- begin-user-doc --> <!-- end-user-doc -->
     *
     * @generated
     */
    protected TransitionFeatureMembershipItemProvider transitionFeatureMembershipItemProvider;

    /**
     * This creates an adapter for a {@link org.eclipse.syson.sysml.TransitionFeatureMembership}. <!-- begin-user-doc
     * --> <!-- end-user-doc -->
     *
     * @generated
     */
    @Override
    public Adapter createTransitionFeatureMembershipAdapter() {
        if (this.transitionFeatureMembershipItemProvider == null) {
            this.transitionFeatureMembershipItemProvider = new TransitionFeatureMembershipItemProvider(this);
        }

        return this.transitionFeatureMembershipItemProvider;
    }

    /**
     * This keeps track of the one adapter used for all {@link org.eclipse.syson.sysml.TransitionUsage} instances. <!--
     * begin-user-doc --> <!-- end-user-doc -->
     *
     * @generated
     */
    protected TransitionUsageItemProvider transitionUsageItemProvider;

    /**
     * This creates an adapter for a {@link org.eclipse.syson.sysml.TransitionUsage}. <!-- begin-user-doc --> <!--
     * end-user-doc -->
     *
     * @generated
     */
    @Override
    public Adapter createTransitionUsageAdapter() {
        if (this.transitionUsageItemProvider == null) {
            this.transitionUsageItemProvider = new TransitionUsageItemProvider(this);
        }

        return this.transitionUsageItemProvider;
    }

    /**
     * This keeps track of the one adapter used for all {@link org.eclipse.syson.sysml.TriggerInvocationExpression}
     * instances. <!-- begin-user-doc --> <!-- end-user-doc -->
     *
     * @generated
     */
    protected TriggerInvocationExpressionItemProvider triggerInvocationExpressionItemProvider;

    /**
     * This creates an adapter for a {@link org.eclipse.syson.sysml.TriggerInvocationExpression}. <!-- begin-user-doc
     * --> <!-- end-user-doc -->
     *
     * @generated
     */
    @Override
    public Adapter createTriggerInvocationExpressionAdapter() {
        if (this.triggerInvocationExpressionItemProvider == null) {
            this.triggerInvocationExpressionItemProvider = new TriggerInvocationExpressionItemProvider(this);
        }

        return this.triggerInvocationExpressionItemProvider;
    }

    /**
     * This keeps track of the one adapter used for all {@link org.eclipse.syson.sysml.Type} instances. <!--
     * begin-user-doc --> <!-- end-user-doc -->
     *
     * @generated
     */
    protected TypeItemProvider typeItemProvider;

    /**
     * This creates an adapter for a {@link org.eclipse.syson.sysml.Type}. <!-- begin-user-doc --> <!-- end-user-doc -->
     *
     * @generated
     */
    @Override
    public Adapter createTypeAdapter() {
        if (this.typeItemProvider == null) {
            this.typeItemProvider = new TypeItemProvider(this);
        }

        return this.typeItemProvider;
    }

    /**
     * This keeps track of the one adapter used for all {@link org.eclipse.syson.sysml.TypeFeaturing} instances. <!--
     * begin-user-doc --> <!-- end-user-doc -->
     *
     * @generated
     */
    protected TypeFeaturingItemProvider typeFeaturingItemProvider;

    /**
     * This creates an adapter for a {@link org.eclipse.syson.sysml.TypeFeaturing}. <!-- begin-user-doc --> <!--
     * end-user-doc -->
     *
     * @generated
     */
    @Override
    public Adapter createTypeFeaturingAdapter() {
        if (this.typeFeaturingItemProvider == null) {
            this.typeFeaturingItemProvider = new TypeFeaturingItemProvider(this);
        }

        return this.typeFeaturingItemProvider;
    }

    /**
     * This keeps track of the one adapter used for all {@link org.eclipse.syson.sysml.Unioning} instances. <!--
     * begin-user-doc --> <!-- end-user-doc -->
     *
     * @generated
     */
    protected UnioningItemProvider unioningItemProvider;

    /**
     * This creates an adapter for a {@link org.eclipse.syson.sysml.Unioning}. <!-- begin-user-doc --> <!-- end-user-doc
     * -->
     *
     * @generated
     */
    @Override
    public Adapter createUnioningAdapter() {
        if (this.unioningItemProvider == null) {
            this.unioningItemProvider = new UnioningItemProvider(this);
        }

        return this.unioningItemProvider;
    }

    /**
     * This keeps track of the one adapter used for all {@link org.eclipse.syson.sysml.Usage} instances. <!--
     * begin-user-doc --> <!-- end-user-doc -->
     *
     * @generated
     */
    protected UsageItemProvider usageItemProvider;

    /**
     * This creates an adapter for a {@link org.eclipse.syson.sysml.Usage}. <!-- begin-user-doc --> <!-- end-user-doc
     * -->
     *
     * @generated
     */
    @Override
    public Adapter createUsageAdapter() {
        if (this.usageItemProvider == null) {
            this.usageItemProvider = new UsageItemProvider(this);
        }

        return this.usageItemProvider;
    }

    /**
     * This keeps track of the one adapter used for all {@link org.eclipse.syson.sysml.UseCaseDefinition} instances.
     * <!-- begin-user-doc --> <!-- end-user-doc -->
     *
     * @generated
     */
    protected UseCaseDefinitionItemProvider useCaseDefinitionItemProvider;

    /**
     * This creates an adapter for a {@link org.eclipse.syson.sysml.UseCaseDefinition}. <!-- begin-user-doc --> <!--
     * end-user-doc -->
     *
     * @generated
     */
    @Override
    public Adapter createUseCaseDefinitionAdapter() {
        if (this.useCaseDefinitionItemProvider == null) {
            this.useCaseDefinitionItemProvider = new UseCaseDefinitionItemProvider(this);
        }

        return this.useCaseDefinitionItemProvider;
    }

    /**
     * This keeps track of the one adapter used for all {@link org.eclipse.syson.sysml.UseCaseUsage} instances. <!--
     * begin-user-doc --> <!-- end-user-doc -->
     *
     * @generated
     */
    protected UseCaseUsageItemProvider useCaseUsageItemProvider;

    /**
     * This creates an adapter for a {@link org.eclipse.syson.sysml.UseCaseUsage}. <!-- begin-user-doc --> <!--
     * end-user-doc -->
     *
     * @generated
     */
    @Override
    public Adapter createUseCaseUsageAdapter() {
        if (this.useCaseUsageItemProvider == null) {
            this.useCaseUsageItemProvider = new UseCaseUsageItemProvider(this);
        }

        return this.useCaseUsageItemProvider;
    }

    /**
     * This keeps track of the one adapter used for all {@link org.eclipse.syson.sysml.VariantMembership} instances.
     * <!-- begin-user-doc --> <!-- end-user-doc -->
     *
     * @generated
     */
    protected VariantMembershipItemProvider variantMembershipItemProvider;

    /**
     * This creates an adapter for a {@link org.eclipse.syson.sysml.VariantMembership}. <!-- begin-user-doc --> <!--
     * end-user-doc -->
     *
     * @generated
     */
    @Override
    public Adapter createVariantMembershipAdapter() {
        if (this.variantMembershipItemProvider == null) {
            this.variantMembershipItemProvider = new VariantMembershipItemProvider(this);
        }

        return this.variantMembershipItemProvider;
    }

    /**
     * This keeps track of the one adapter used for all {@link org.eclipse.syson.sysml.VerificationCaseDefinition}
     * instances. <!-- begin-user-doc --> <!-- end-user-doc -->
     *
     * @generated
     */
    protected VerificationCaseDefinitionItemProvider verificationCaseDefinitionItemProvider;

    /**
     * This creates an adapter for a {@link org.eclipse.syson.sysml.VerificationCaseDefinition}. <!-- begin-user-doc -->
     * <!-- end-user-doc -->
     *
     * @generated
     */
    @Override
    public Adapter createVerificationCaseDefinitionAdapter() {
        if (this.verificationCaseDefinitionItemProvider == null) {
            this.verificationCaseDefinitionItemProvider = new VerificationCaseDefinitionItemProvider(this);
        }

        return this.verificationCaseDefinitionItemProvider;
    }

    /**
     * This keeps track of the one adapter used for all {@link org.eclipse.syson.sysml.VerificationCaseUsage} instances.
     * <!-- begin-user-doc --> <!-- end-user-doc -->
     *
     * @generated
     */
    protected VerificationCaseUsageItemProvider verificationCaseUsageItemProvider;

    /**
     * This creates an adapter for a {@link org.eclipse.syson.sysml.VerificationCaseUsage}. <!-- begin-user-doc --> <!--
     * end-user-doc -->
     *
     * @generated
     */
    @Override
    public Adapter createVerificationCaseUsageAdapter() {
        if (this.verificationCaseUsageItemProvider == null) {
            this.verificationCaseUsageItemProvider = new VerificationCaseUsageItemProvider(this);
        }

        return this.verificationCaseUsageItemProvider;
    }

    /**
     * This keeps track of the one adapter used for all {@link org.eclipse.syson.sysml.ViewDefinition} instances. <!--
     * begin-user-doc --> <!-- end-user-doc -->
     *
     * @generated
     */
    protected ViewDefinitionItemProvider viewDefinitionItemProvider;

    /**
     * This creates an adapter for a {@link org.eclipse.syson.sysml.ViewDefinition}. <!-- begin-user-doc --> <!--
     * end-user-doc -->
     *
     * @generated
     */
    @Override
    public Adapter createViewDefinitionAdapter() {
        if (this.viewDefinitionItemProvider == null) {
            this.viewDefinitionItemProvider = new ViewDefinitionItemProvider(this);
        }

        return this.viewDefinitionItemProvider;
    }

    /**
     * This keeps track of the one adapter used for all {@link org.eclipse.syson.sysml.ViewpointDefinition} instances.
     * <!-- begin-user-doc --> <!-- end-user-doc -->
     *
     * @generated
     */
    protected ViewpointDefinitionItemProvider viewpointDefinitionItemProvider;

    /**
     * This creates an adapter for a {@link org.eclipse.syson.sysml.ViewpointDefinition}. <!-- begin-user-doc --> <!--
     * end-user-doc -->
     *
     * @generated
     */
    @Override
    public Adapter createViewpointDefinitionAdapter() {
        if (this.viewpointDefinitionItemProvider == null) {
            this.viewpointDefinitionItemProvider = new ViewpointDefinitionItemProvider(this);
        }

        return this.viewpointDefinitionItemProvider;
    }

    /**
     * This keeps track of the one adapter used for all {@link org.eclipse.syson.sysml.ViewpointUsage} instances. <!--
     * begin-user-doc --> <!-- end-user-doc -->
     *
     * @generated
     */
    protected ViewpointUsageItemProvider viewpointUsageItemProvider;

    /**
     * This creates an adapter for a {@link org.eclipse.syson.sysml.ViewpointUsage}. <!-- begin-user-doc --> <!--
     * end-user-doc -->
     *
     * @generated
     */
    @Override
    public Adapter createViewpointUsageAdapter() {
        if (this.viewpointUsageItemProvider == null) {
            this.viewpointUsageItemProvider = new ViewpointUsageItemProvider(this);
        }

        return this.viewpointUsageItemProvider;
    }

    /**
     * This keeps track of the one adapter used for all {@link org.eclipse.syson.sysml.ViewRenderingMembership}
     * instances. <!-- begin-user-doc --> <!-- end-user-doc -->
     *
     * @generated
     */
    protected ViewRenderingMembershipItemProvider viewRenderingMembershipItemProvider;

    /**
     * This creates an adapter for a {@link org.eclipse.syson.sysml.ViewRenderingMembership}. <!-- begin-user-doc -->
     * <!-- end-user-doc -->
     *
     * @generated
     */
    @Override
    public Adapter createViewRenderingMembershipAdapter() {
        if (this.viewRenderingMembershipItemProvider == null) {
            this.viewRenderingMembershipItemProvider = new ViewRenderingMembershipItemProvider(this);
        }

        return this.viewRenderingMembershipItemProvider;
    }

    /**
     * This keeps track of the one adapter used for all {@link org.eclipse.syson.sysml.ViewUsage} instances. <!--
     * begin-user-doc --> <!-- end-user-doc -->
     *
     * @generated
     */
    protected ViewUsageItemProvider viewUsageItemProvider;

    /**
     * This creates an adapter for a {@link org.eclipse.syson.sysml.ViewUsage}. <!-- begin-user-doc --> <!--
     * end-user-doc -->
     *
     * @generated
     */
    @Override
    public Adapter createViewUsageAdapter() {
        if (this.viewUsageItemProvider == null) {
            this.viewUsageItemProvider = new ViewUsageItemProvider(this);
        }

        return this.viewUsageItemProvider;
    }

    /**
     * This keeps track of the one adapter used for all {@link org.eclipse.syson.sysml.WhileLoopActionUsage} instances.
     * <!-- begin-user-doc --> <!-- end-user-doc -->
     *
     * @generated
     */
    protected WhileLoopActionUsageItemProvider whileLoopActionUsageItemProvider;

    /**
     * This creates an adapter for a {@link org.eclipse.syson.sysml.WhileLoopActionUsage}. <!-- begin-user-doc --> <!--
     * end-user-doc -->
     *
     * @generated
     */
    @Override
    public Adapter createWhileLoopActionUsageAdapter() {
        if (this.whileLoopActionUsageItemProvider == null) {
            this.whileLoopActionUsageItemProvider = new WhileLoopActionUsageItemProvider(this);
        }

        return this.whileLoopActionUsageItemProvider;
    }

    /**
     * This returns the root adapter factory that contains this factory. <!-- begin-user-doc --> <!-- end-user-doc -->
     *
     * @generated
     */
    @Override
    public ComposeableAdapterFactory getRootAdapterFactory() {
        return this.parentAdapterFactory == null ? this : this.parentAdapterFactory.getRootAdapterFactory();
    }

    /**
     * This sets the composed adapter factory that contains this factory. <!-- begin-user-doc --> <!-- end-user-doc -->
     *
     * @generated
     */
    @Override
    public void setParentAdapterFactory(ComposedAdapterFactory parentAdapterFactory) {
        this.parentAdapterFactory = parentAdapterFactory;
    }

    /**
     * <!-- begin-user-doc --> <!-- end-user-doc -->
     *
     * @generated
     */
    @Override
    public boolean isFactoryForType(Object type) {
        return this.supportedTypes.contains(type) || super.isFactoryForType(type);
    }

    /**
     * This implementation substitutes the factory itself as the key for the adapter. <!-- begin-user-doc --> <!--
     * end-user-doc -->
     *
     * @generated
     */
    @Override
    public Adapter adapt(Notifier notifier, Object type) {
        return super.adapt(notifier, this);
    }

    /**
     * <!-- begin-user-doc --> <!-- end-user-doc -->
     *
     * @generated
     */
    @Override
    public Object adapt(Object object, Object type) {
        if (this.isFactoryForType(type)) {
            Object adapter = super.adapt(object, type);
            if (!(type instanceof Class<?>) || (((Class<?>) type).isInstance(adapter))) {
                return adapter;
            }
        }

        return null;
    }

    /**
     * <!-- begin-user-doc --> <!-- end-user-doc -->
     *
     * @generated
     */
    public List<IChildCreationExtender> getChildCreationExtenders() {
        return this.childCreationExtenderManager.getChildCreationExtenders();
    }

    /**
     * <!-- begin-user-doc --> <!-- end-user-doc -->
     *
     * @generated
     */
    @Override
    public Collection<?> getNewChildDescriptors(Object object, EditingDomain editingDomain) {
        return this.childCreationExtenderManager.getNewChildDescriptors(object, editingDomain);
    }

    /**
     * <!-- begin-user-doc --> <!-- end-user-doc -->
     *
     * @generated
     */
    @Override
    public ResourceLocator getResourceLocator() {
        return this.childCreationExtenderManager;
    }

    /**
     * This adds a listener. <!-- begin-user-doc --> <!-- end-user-doc -->
     *
     * @generated
     */
    @Override
    public void addListener(INotifyChangedListener notifyChangedListener) {
        this.changeNotifier.addListener(notifyChangedListener);
    }

    /**
     * This removes a listener. <!-- begin-user-doc --> <!-- end-user-doc -->
     *
     * @generated
     */
    @Override
    public void removeListener(INotifyChangedListener notifyChangedListener) {
        this.changeNotifier.removeListener(notifyChangedListener);
    }

    /**
     * This delegates to {@link #changeNotifier} and to {@link #parentAdapterFactory}. <!-- begin-user-doc --> <!--
     * end-user-doc -->
     *
     * @generated
     */
    @Override
    public void fireNotifyChanged(Notification notification) {
        this.changeNotifier.fireNotifyChanged(notification);

        if (this.parentAdapterFactory != null) {
            this.parentAdapterFactory.fireNotifyChanged(notification);
        }
    }

    /**
     * This disposes all of the item providers created by this factory. <!-- begin-user-doc --> <!-- end-user-doc -->
     *
     * @generated
     */
    @Override
    public void dispose() {
        if (this.acceptActionUsageItemProvider != null)
            this.acceptActionUsageItemProvider.dispose();
        if (this.actionDefinitionItemProvider != null)
            this.actionDefinitionItemProvider.dispose();
        if (this.actionUsageItemProvider != null)
            this.actionUsageItemProvider.dispose();
        if (this.actorMembershipItemProvider != null)
            this.actorMembershipItemProvider.dispose();
        if (this.allocationDefinitionItemProvider != null)
            this.allocationDefinitionItemProvider.dispose();
        if (this.allocationUsageItemProvider != null)
            this.allocationUsageItemProvider.dispose();
        if (this.analysisCaseDefinitionItemProvider != null)
            this.analysisCaseDefinitionItemProvider.dispose();
        if (this.analysisCaseUsageItemProvider != null)
            this.analysisCaseUsageItemProvider.dispose();
        if (this.annotatingElementItemProvider != null)
            this.annotatingElementItemProvider.dispose();
        if (this.annotationItemProvider != null)
            this.annotationItemProvider.dispose();
        if (this.assertConstraintUsageItemProvider != null)
            this.assertConstraintUsageItemProvider.dispose();
        if (this.assignmentActionUsageItemProvider != null)
            this.assignmentActionUsageItemProvider.dispose();
        if (this.associationItemProvider != null)
            this.associationItemProvider.dispose();
        if (this.associationStructureItemProvider != null)
            this.associationStructureItemProvider.dispose();
        if (this.attributeDefinitionItemProvider != null)
            this.attributeDefinitionItemProvider.dispose();
        if (this.attributeUsageItemProvider != null)
            this.attributeUsageItemProvider.dispose();
        if (this.behaviorItemProvider != null)
            this.behaviorItemProvider.dispose();
        if (this.bindingConnectorItemProvider != null)
            this.bindingConnectorItemProvider.dispose();
        if (this.bindingConnectorAsUsageItemProvider != null)
            this.bindingConnectorAsUsageItemProvider.dispose();
        if (this.booleanExpressionItemProvider != null)
            this.booleanExpressionItemProvider.dispose();
        if (this.calculationDefinitionItemProvider != null)
            this.calculationDefinitionItemProvider.dispose();
        if (this.calculationUsageItemProvider != null)
            this.calculationUsageItemProvider.dispose();
        if (this.caseDefinitionItemProvider != null)
            this.caseDefinitionItemProvider.dispose();
        if (this.caseUsageItemProvider != null)
            this.caseUsageItemProvider.dispose();
        if (this.classItemProvider != null)
            this.classItemProvider.dispose();
        if (this.classifierItemProvider != null)
            this.classifierItemProvider.dispose();
        if (this.collectExpressionItemProvider != null)
            this.collectExpressionItemProvider.dispose();
        if (this.commentItemProvider != null)
            this.commentItemProvider.dispose();
        if (this.concernDefinitionItemProvider != null)
            this.concernDefinitionItemProvider.dispose();
        if (this.concernUsageItemProvider != null)
            this.concernUsageItemProvider.dispose();
        if (this.conjugatedPortDefinitionItemProvider != null)
            this.conjugatedPortDefinitionItemProvider.dispose();
        if (this.conjugatedPortTypingItemProvider != null)
            this.conjugatedPortTypingItemProvider.dispose();
        if (this.conjugationItemProvider != null)
            this.conjugationItemProvider.dispose();
        if (this.connectionDefinitionItemProvider != null)
            this.connectionDefinitionItemProvider.dispose();
        if (this.connectionUsageItemProvider != null)
            this.connectionUsageItemProvider.dispose();
        if (this.connectorItemProvider != null)
            this.connectorItemProvider.dispose();
        if (this.constraintDefinitionItemProvider != null)
            this.constraintDefinitionItemProvider.dispose();
        if (this.constraintUsageItemProvider != null)
            this.constraintUsageItemProvider.dispose();
        if (this.dataTypeItemProvider != null)
            this.dataTypeItemProvider.dispose();
        if (this.decisionNodeItemProvider != null)
            this.decisionNodeItemProvider.dispose();
        if (this.definitionItemProvider != null)
            this.definitionItemProvider.dispose();
        if (this.dependencyItemProvider != null)
            this.dependencyItemProvider.dispose();
        if (this.differencingItemProvider != null)
            this.differencingItemProvider.dispose();
        if (this.disjoiningItemProvider != null)
            this.disjoiningItemProvider.dispose();
        if (this.documentationItemProvider != null)
            this.documentationItemProvider.dispose();
        if (this.elementFilterMembershipItemProvider != null)
            this.elementFilterMembershipItemProvider.dispose();
        if (this.endFeatureMembershipItemProvider != null)
            this.endFeatureMembershipItemProvider.dispose();
        if (this.enumerationDefinitionItemProvider != null)
            this.enumerationDefinitionItemProvider.dispose();
        if (this.enumerationUsageItemProvider != null)
            this.enumerationUsageItemProvider.dispose();
        if (this.eventOccurrenceUsageItemProvider != null)
            this.eventOccurrenceUsageItemProvider.dispose();
        if (this.exhibitStateUsageItemProvider != null)
            this.exhibitStateUsageItemProvider.dispose();
        if (this.expressionItemProvider != null)
            this.expressionItemProvider.dispose();
        if (this.featureItemProvider != null)
            this.featureItemProvider.dispose();
        if (this.featureChainExpressionItemProvider != null)
            this.featureChainExpressionItemProvider.dispose();
        if (this.featureChainingItemProvider != null)
            this.featureChainingItemProvider.dispose();
        if (this.featureInvertingItemProvider != null)
            this.featureInvertingItemProvider.dispose();
        if (this.featureMembershipItemProvider != null)
            this.featureMembershipItemProvider.dispose();
        if (this.featureReferenceExpressionItemProvider != null)
            this.featureReferenceExpressionItemProvider.dispose();
        if (this.featureTypingItemProvider != null)
            this.featureTypingItemProvider.dispose();
        if (this.featureValueItemProvider != null)
            this.featureValueItemProvider.dispose();
        if (this.flowConnectionDefinitionItemProvider != null)
            this.flowConnectionDefinitionItemProvider.dispose();
        if (this.flowConnectionUsageItemProvider != null)
            this.flowConnectionUsageItemProvider.dispose();
        if (this.forkNodeItemProvider != null)
            this.forkNodeItemProvider.dispose();
        if (this.forLoopActionUsageItemProvider != null)
            this.forLoopActionUsageItemProvider.dispose();
        if (this.framedConcernMembershipItemProvider != null)
            this.framedConcernMembershipItemProvider.dispose();
        if (this.functionItemProvider != null)
            this.functionItemProvider.dispose();
        if (this.ifActionUsageItemProvider != null)
            this.ifActionUsageItemProvider.dispose();
        if (this.includeUseCaseUsageItemProvider != null)
            this.includeUseCaseUsageItemProvider.dispose();
        if (this.interactionItemProvider != null)
            this.interactionItemProvider.dispose();
        if (this.interfaceDefinitionItemProvider != null)
            this.interfaceDefinitionItemProvider.dispose();
        if (this.interfaceUsageItemProvider != null)
            this.interfaceUsageItemProvider.dispose();
        if (this.intersectingItemProvider != null)
            this.intersectingItemProvider.dispose();
        if (this.invariantItemProvider != null)
            this.invariantItemProvider.dispose();
        if (this.invocationExpressionItemProvider != null)
            this.invocationExpressionItemProvider.dispose();
        if (this.itemDefinitionItemProvider != null)
            this.itemDefinitionItemProvider.dispose();
        if (this.itemFeatureItemProvider != null)
            this.itemFeatureItemProvider.dispose();
        if (this.itemFlowItemProvider != null)
            this.itemFlowItemProvider.dispose();
        if (this.itemFlowEndItemProvider != null)
            this.itemFlowEndItemProvider.dispose();
        if (this.itemUsageItemProvider != null)
            this.itemUsageItemProvider.dispose();
        if (this.joinNodeItemProvider != null)
            this.joinNodeItemProvider.dispose();
        if (this.libraryPackageItemProvider != null)
            this.libraryPackageItemProvider.dispose();
        if (this.lifeClassItemProvider != null)
            this.lifeClassItemProvider.dispose();
        if (this.literalBooleanItemProvider != null)
            this.literalBooleanItemProvider.dispose();
        if (this.literalExpressionItemProvider != null)
            this.literalExpressionItemProvider.dispose();
        if (this.literalInfinityItemProvider != null)
            this.literalInfinityItemProvider.dispose();
        if (this.literalIntegerItemProvider != null)
            this.literalIntegerItemProvider.dispose();
        if (this.literalRationalItemProvider != null)
            this.literalRationalItemProvider.dispose();
        if (this.literalStringItemProvider != null)
            this.literalStringItemProvider.dispose();
        if (this.membershipItemProvider != null)
            this.membershipItemProvider.dispose();
        if (this.membershipExposeItemProvider != null)
            this.membershipExposeItemProvider.dispose();
        if (this.membershipImportItemProvider != null)
            this.membershipImportItemProvider.dispose();
        if (this.mergeNodeItemProvider != null)
            this.mergeNodeItemProvider.dispose();
        if (this.metaclassItemProvider != null)
            this.metaclassItemProvider.dispose();
        if (this.metadataAccessExpressionItemProvider != null)
            this.metadataAccessExpressionItemProvider.dispose();
        if (this.metadataDefinitionItemProvider != null)
            this.metadataDefinitionItemProvider.dispose();
        if (this.metadataFeatureItemProvider != null)
            this.metadataFeatureItemProvider.dispose();
        if (this.metadataUsageItemProvider != null)
            this.metadataUsageItemProvider.dispose();
        if (this.multiplicityItemProvider != null)
            this.multiplicityItemProvider.dispose();
        if (this.multiplicityRangeItemProvider != null)
            this.multiplicityRangeItemProvider.dispose();
        if (this.namespaceItemProvider != null)
            this.namespaceItemProvider.dispose();
        if (this.namespaceExposeItemProvider != null)
            this.namespaceExposeItemProvider.dispose();
        if (this.namespaceImportItemProvider != null)
            this.namespaceImportItemProvider.dispose();
        if (this.nullExpressionItemProvider != null)
            this.nullExpressionItemProvider.dispose();
        if (this.objectiveMembershipItemProvider != null)
            this.objectiveMembershipItemProvider.dispose();
        if (this.occurrenceDefinitionItemProvider != null)
            this.occurrenceDefinitionItemProvider.dispose();
        if (this.occurrenceUsageItemProvider != null)
            this.occurrenceUsageItemProvider.dispose();
        if (this.operatorExpressionItemProvider != null)
            this.operatorExpressionItemProvider.dispose();
        if (this.owningMembershipItemProvider != null)
            this.owningMembershipItemProvider.dispose();
        if (this.packageItemProvider != null)
            this.packageItemProvider.dispose();
        if (this.parameterMembershipItemProvider != null)
            this.parameterMembershipItemProvider.dispose();
        if (this.partDefinitionItemProvider != null)
            this.partDefinitionItemProvider.dispose();
        if (this.partUsageItemProvider != null)
            this.partUsageItemProvider.dispose();
        if (this.performActionUsageItemProvider != null)
            this.performActionUsageItemProvider.dispose();
        if (this.portConjugationItemProvider != null)
            this.portConjugationItemProvider.dispose();
        if (this.portDefinitionItemProvider != null)
            this.portDefinitionItemProvider.dispose();
        if (this.portUsageItemProvider != null)
            this.portUsageItemProvider.dispose();
        if (this.predicateItemProvider != null)
            this.predicateItemProvider.dispose();
        if (this.redefinitionItemProvider != null)
            this.redefinitionItemProvider.dispose();
        if (this.referenceSubsettingItemProvider != null)
            this.referenceSubsettingItemProvider.dispose();
        if (this.referenceUsageItemProvider != null)
            this.referenceUsageItemProvider.dispose();
        if (this.renderingDefinitionItemProvider != null)
            this.renderingDefinitionItemProvider.dispose();
        if (this.renderingUsageItemProvider != null)
            this.renderingUsageItemProvider.dispose();
        if (this.requirementConstraintMembershipItemProvider != null)
            this.requirementConstraintMembershipItemProvider.dispose();
        if (this.requirementDefinitionItemProvider != null)
            this.requirementDefinitionItemProvider.dispose();
        if (this.requirementUsageItemProvider != null)
            this.requirementUsageItemProvider.dispose();
        if (this.requirementVerificationMembershipItemProvider != null)
            this.requirementVerificationMembershipItemProvider.dispose();
        if (this.resultExpressionMembershipItemProvider != null)
            this.resultExpressionMembershipItemProvider.dispose();
        if (this.returnParameterMembershipItemProvider != null)
            this.returnParameterMembershipItemProvider.dispose();
        if (this.satisfyRequirementUsageItemProvider != null)
            this.satisfyRequirementUsageItemProvider.dispose();
        if (this.selectExpressionItemProvider != null)
            this.selectExpressionItemProvider.dispose();
        if (this.sendActionUsageItemProvider != null)
            this.sendActionUsageItemProvider.dispose();
        if (this.specializationItemProvider != null)
            this.specializationItemProvider.dispose();
        if (this.stakeholderMembershipItemProvider != null)
            this.stakeholderMembershipItemProvider.dispose();
        if (this.stateDefinitionItemProvider != null)
            this.stateDefinitionItemProvider.dispose();
        if (this.stateSubactionMembershipItemProvider != null)
            this.stateSubactionMembershipItemProvider.dispose();
        if (this.stateUsageItemProvider != null)
            this.stateUsageItemProvider.dispose();
        if (this.stepItemProvider != null)
            this.stepItemProvider.dispose();
        if (this.structureItemProvider != null)
            this.structureItemProvider.dispose();
        if (this.subclassificationItemProvider != null)
            this.subclassificationItemProvider.dispose();
        if (this.subjectMembershipItemProvider != null)
            this.subjectMembershipItemProvider.dispose();
        if (this.subsettingItemProvider != null)
            this.subsettingItemProvider.dispose();
        if (this.successionItemProvider != null)
            this.successionItemProvider.dispose();
        if (this.successionAsUsageItemProvider != null)
            this.successionAsUsageItemProvider.dispose();
        if (this.successionFlowConnectionUsageItemProvider != null)
            this.successionFlowConnectionUsageItemProvider.dispose();
        if (this.successionItemFlowItemProvider != null)
            this.successionItemFlowItemProvider.dispose();
        if (this.textualRepresentationItemProvider != null)
            this.textualRepresentationItemProvider.dispose();
        if (this.transitionFeatureMembershipItemProvider != null)
            this.transitionFeatureMembershipItemProvider.dispose();
        if (this.transitionUsageItemProvider != null)
            this.transitionUsageItemProvider.dispose();
        if (this.triggerInvocationExpressionItemProvider != null)
            this.triggerInvocationExpressionItemProvider.dispose();
        if (this.typeItemProvider != null)
            this.typeItemProvider.dispose();
        if (this.typeFeaturingItemProvider != null)
            this.typeFeaturingItemProvider.dispose();
        if (this.unioningItemProvider != null)
            this.unioningItemProvider.dispose();
        if (this.usageItemProvider != null)
            this.usageItemProvider.dispose();
        if (this.useCaseDefinitionItemProvider != null)
            this.useCaseDefinitionItemProvider.dispose();
        if (this.useCaseUsageItemProvider != null)
            this.useCaseUsageItemProvider.dispose();
        if (this.variantMembershipItemProvider != null)
            this.variantMembershipItemProvider.dispose();
        if (this.verificationCaseDefinitionItemProvider != null)
            this.verificationCaseDefinitionItemProvider.dispose();
        if (this.verificationCaseUsageItemProvider != null)
            this.verificationCaseUsageItemProvider.dispose();
        if (this.viewDefinitionItemProvider != null)
            this.viewDefinitionItemProvider.dispose();
        if (this.viewpointDefinitionItemProvider != null)
            this.viewpointDefinitionItemProvider.dispose();
        if (this.viewpointUsageItemProvider != null)
            this.viewpointUsageItemProvider.dispose();
        if (this.viewRenderingMembershipItemProvider != null)
            this.viewRenderingMembershipItemProvider.dispose();
        if (this.viewUsageItemProvider != null)
            this.viewUsageItemProvider.dispose();
        if (this.whileLoopActionUsageItemProvider != null)
            this.whileLoopActionUsageItemProvider.dispose();
    }

}
